From b8a86d9eb96541ae116b9040332b67be292a686a Mon Sep 17 00:00:00 2001 From: zapata Date: Tue, 18 Jun 2002 20:08:50 +0000 Subject: [PATCH] introduced AdapterEntityModel --- source/mir/entity/adapter/EntityAdapter.java | 22 +- .../entity/adapter/EntityAdapterDefinition.java | 16 +- source/mir/entity/adapter/EntityAdapterModel.java | 52 ++++ .../mir/entity/adapter/EntityIteratorAdapter.java | 18 +- source/mir/generator/FreemarkerGenerator.java | 17 -- .../mir/producer/EntityBatchingProducerNode.java | 22 +- .../producer/EntityEnumeratingProducerNode.java | 23 +- source/mir/producer/EntityListProducerNode.java | 13 +- .../entity/adapter/AudioAdapterDefinition.java | 22 -- .../entity/adapter/BreakingAdapterDefinition.java | 22 -- .../entity/adapter/CommentAdapterDefinition.java | 316 --------------------- .../entity/adapter/ContentAdapterDefinition.java | 183 ------------ .../entity/adapter/FeatureAdapterDefinition.java | 22 -- .../entity/adapter/ImagesAdapterDefinition.java | 22 -- .../entity/adapter/LanguageAdapterDefinition.java | 22 -- .../entity/adapter/LinksImcsAdapterDefinition.java | 22 -- .../entity/adapter/MediaAdapterDefinition.java | 22 -- .../entity/adapter/OtherAdapterDefinition.java | 22 -- .../entity/adapter/TopicsAdapterDefinition.java | 22 -- .../adapter/UploadedMediaAdapterDefinition.java | 22 -- .../entity/adapter/UsersAdapterDefinition.java | 22 -- .../entity/adapter/VideoAdapterDefinition.java | 22 -- source/mircoders/global/ProducerEngine.java | 13 +- .../localizer/MirCachingLocalizerDecorator.java | 19 +- .../mircoders/localizer/MirDataModelLocalizer.java | 7 + .../mircoders/localizer/MirGeneratorLocalizer.java | 2 +- source/mircoders/localizer/MirLocalizer.java | 3 +- .../localizer/MirProducerAssistantLocalizer.java | 11 + .../mircoders/localizer/MirProducerLocalizer.java | 2 +- .../localizer/MirProducerToolLocalizer.java | 11 - .../basic/MirBasicDataModelLocalizer.java | 236 +++++++++++++++ .../localizer/basic/MirBasicLocalizer.java | 8 +- ...ava => MirBasicProducerAssistantLocalizer.java} | 2 +- .../localizer/basic/MirBasicProducerLocalizer.java | 11 + .../mircoders/producer/GeneratingProducerNode.java | 4 +- .../mircoders/producer/NodedProducerFactory.java | 11 +- .../bolivia.indymedia.org/BoliviaLocalizer.java | 4 +- ...java => BoliviaProducerAssistantLocalizer.java} | 2 +- .../BoliviaProducerLocalizer.java | 67 +++-- .../euskalherria.indymedia.org/EHLocalizer.java | 4 +- .../EHProducerLocalizer.java | 37 ++- source/mirlocal/indymedia.nl/IndyNLLocalizer.java | 2 +- .../IndyNLProducerAssistantLocalizer.java | 2 +- .../indymedia.nl/IndyNLProducerLocalizer.java | 74 ++--- 44 files changed, 518 insertions(+), 960 deletions(-) create mode 100755 source/mir/entity/adapter/EntityAdapterModel.java delete mode 100755 source/mircoders/entity/adapter/AudioAdapterDefinition.java delete mode 100755 source/mircoders/entity/adapter/BreakingAdapterDefinition.java delete mode 100755 source/mircoders/entity/adapter/CommentAdapterDefinition.java delete mode 100755 source/mircoders/entity/adapter/ContentAdapterDefinition.java delete mode 100755 source/mircoders/entity/adapter/FeatureAdapterDefinition.java delete mode 100755 source/mircoders/entity/adapter/ImagesAdapterDefinition.java delete mode 100755 source/mircoders/entity/adapter/LanguageAdapterDefinition.java delete mode 100755 source/mircoders/entity/adapter/LinksImcsAdapterDefinition.java delete mode 100755 source/mircoders/entity/adapter/MediaAdapterDefinition.java delete mode 100755 source/mircoders/entity/adapter/OtherAdapterDefinition.java delete mode 100755 source/mircoders/entity/adapter/TopicsAdapterDefinition.java delete mode 100755 source/mircoders/entity/adapter/UploadedMediaAdapterDefinition.java delete mode 100755 source/mircoders/entity/adapter/UsersAdapterDefinition.java delete mode 100755 source/mircoders/entity/adapter/VideoAdapterDefinition.java create mode 100755 source/mircoders/localizer/MirDataModelLocalizer.java create mode 100755 source/mircoders/localizer/MirProducerAssistantLocalizer.java delete mode 100755 source/mircoders/localizer/MirProducerToolLocalizer.java create mode 100755 source/mircoders/localizer/basic/MirBasicDataModelLocalizer.java rename source/mircoders/localizer/basic/{MirBasicProducerToolLocalizer.java => MirBasicProducerAssistantLocalizer.java} (97%) rename source/mirlocal/bolivia.indymedia.org/{BoliviaProducerToolLocalizer.java => BoliviaProducerAssistantLocalizer.java} (85%) diff --git a/source/mir/entity/adapter/EntityAdapter.java b/source/mir/entity/adapter/EntityAdapter.java index 9e3aa879..4abc7749 100755 --- a/source/mir/entity/adapter/EntityAdapter.java +++ b/source/mir/entity/adapter/EntityAdapter.java @@ -2,16 +2,19 @@ package mir.entity.adapter; import java.util.*; import mir.entity.*; +import mir.util.*; public class EntityAdapter implements Map { private Entity entity; private EntityAdapterDefinition definition; private Map calculatedFieldsCache; + private EntityAdapterModel model; - public EntityAdapter(Entity anEntity, EntityAdapterDefinition aDefinition) { + public EntityAdapter(Entity anEntity, EntityAdapterDefinition aDefinition, EntityAdapterModel aModel) { entity = anEntity; definition = aDefinition; calculatedFieldsCache = new HashMap(); + model = aModel; } public boolean containsKey(Object aKey) { @@ -40,6 +43,10 @@ public class EntityAdapter implements Map { return entity; } + public EntityAdapterModel getModel() { + return model; + } + public Object get(Object aKey) { Object result; @@ -99,4 +106,17 @@ public class EntityAdapter implements Map { public Set entrySet() { throw new UnsupportedOperationException("EntityAdapter.entrySet()"); } + + public Object getRelation(String aWhereClause, String anOrderByClause, String aDefinition) { + try { + return + new CachingRewindableIterator( + new EntityIteratorAdapter( + aWhereClause, anOrderByClause, -1, getModel(), aDefinition)); + } + catch (Throwable t) { + throw new RuntimeException(t.getMessage()); + } + } + } \ No newline at end of file diff --git a/source/mir/entity/adapter/EntityAdapterDefinition.java b/source/mir/entity/adapter/EntityAdapterDefinition.java index 87fd448f..0405a40d 100755 --- a/source/mir/entity/adapter/EntityAdapterDefinition.java +++ b/source/mir/entity/adapter/EntityAdapterDefinition.java @@ -12,8 +12,8 @@ public class EntityAdapterDefinition { calculatedFields = new HashMap(); } - public EntityAdapter makeEntityAdapter(Entity anEntity) { - return new EntityAdapter(anEntity, this); + public EntityAdapter makeEntityAdapter(Entity anEntity, EntityAdapterModel aModel) { + return new EntityAdapter(anEntity, this, aModel); } public CalculatedField getCalculatedField(String aFieldName) { @@ -122,16 +122,4 @@ public class EntityAdapterDefinition { return result; } } - - static protected Object getRelation(StorageObject aStorageObject, String aWhereClause, String anOrderByClause, EntityAdapterDefinition aDefinition) { - try { - return - new CachingRewindableIterator( new EntityIteratorAdapter( - new EntityBrowser( aStorageObject, aWhereClause, anOrderByClause, -1), - aDefinition)); - } - catch (Throwable t) { - throw new RuntimeException(t.getMessage()); - } - } } diff --git a/source/mir/entity/adapter/EntityAdapterModel.java b/source/mir/entity/adapter/EntityAdapterModel.java new file mode 100755 index 00000000..e552799b --- /dev/null +++ b/source/mir/entity/adapter/EntityAdapterModel.java @@ -0,0 +1,52 @@ +package mir.entity.adapter; + +import java.util.*; +import mir.entity.*; +import mir.storage.*; +import mir.util.*; + +public class EntityAdapterModel { + private Map entityAdapterMappings; + + public EntityAdapterModel() { + entityAdapterMappings = new HashMap(); + } + + public EntityAdapter makeEntityAdapter( String aName, Entity anEntity ) { + Mapping mapping = getMappingForName( aName ); + + if (mapping == null ) + throw new RuntimeException( "Adapter definition with name '" + aName + "' not present in model" ); + + return mapping.getDefinition().makeEntityAdapter( anEntity, this ); + } + + public void addMapping( String aName, StorageObject aStorage, EntityAdapterDefinition aDefinition ) { + entityAdapterMappings.put( aName, new Mapping( aStorage, aDefinition ) ); + } + + public Mapping getMappingForName( String aName ) { + return (Mapping) entityAdapterMappings.get( aName ); + } + + public class Mapping { + private StorageObject storage; + private EntityAdapterDefinition definition; + + public Mapping( StorageObject aStorage, EntityAdapterDefinition aDefinition ) { + storage = aStorage; + definition = aDefinition; + } + + public StorageObject getStorage() { + return storage; + } + + public EntityAdapterDefinition getDefinition() { + return definition; + } + } +} + + + \ No newline at end of file diff --git a/source/mir/entity/adapter/EntityIteratorAdapter.java b/source/mir/entity/adapter/EntityIteratorAdapter.java index 202314d0..6fbff1a9 100755 --- a/source/mir/entity/adapter/EntityIteratorAdapter.java +++ b/source/mir/entity/adapter/EntityIteratorAdapter.java @@ -6,20 +6,22 @@ import mir.util.*; import mir.entity.*; public class EntityIteratorAdapter implements RewindableIterator { - private EntityAdapterDefinition definition; + private String definitionName; private RewindableIterator iterator; + private EntityAdapterModel model; - public EntityIteratorAdapter(RewindableIterator anIterator, EntityAdapterDefinition aDefinition) { + public EntityIteratorAdapter(RewindableIterator anIterator, EntityAdapterModel aModel, String aDefinitionName) { + model = aModel; iterator = anIterator; - definition = aDefinition; + definitionName = aDefinitionName; } - public EntityIteratorAdapter(StorageObject aStorage, String aWhereClause, String anOrderByClause, int aBatchSize, EntityAdapterDefinition aDefinition) throws StorageObjectException { - this(new EntityBrowser(aStorage, aWhereClause, anOrderByClause, aBatchSize), aDefinition); + public EntityIteratorAdapter(String aWhereClause, String anOrderByClause, int aBatchSize, EntityAdapterModel aModel, String aDefinitionName ) throws StorageObjectException { + this(new EntityBrowser(aModel.getMappingForName(aDefinitionName).getStorage(), aWhereClause, anOrderByClause, aBatchSize), aModel, aDefinitionName); } - public EntityIteratorAdapter(StorageObject aStorage, String aWhereClause, String anOrderByClause, int aBatchSize, EntityAdapterDefinition aDefinition, int aLimit, int aSkip) throws StorageObjectException { - this(new EntityBrowser(aStorage, aWhereClause, anOrderByClause, aBatchSize, aLimit, aSkip), aDefinition); + public EntityIteratorAdapter(String aWhereClause, String anOrderByClause, int aBatchSize, EntityAdapterModel aModel, String aDefinitionName, int aLimit, int aSkip) throws StorageObjectException { + this(new EntityBrowser(aModel.getMappingForName(aDefinitionName).getStorage(), aWhereClause, anOrderByClause, aBatchSize, aLimit, aSkip), aModel, aDefinitionName); } public boolean hasNext() { @@ -27,7 +29,7 @@ public class EntityIteratorAdapter implements RewindableIterator { } public Object next() { - return definition.makeEntityAdapter((Entity) iterator.next()); + return model.makeEntityAdapter(definitionName, (Entity) iterator.next()); } public void remove() { diff --git a/source/mir/generator/FreemarkerGenerator.java b/source/mir/generator/FreemarkerGenerator.java index fdf66cc3..4ef040f9 100755 --- a/source/mir/generator/FreemarkerGenerator.java +++ b/source/mir/generator/FreemarkerGenerator.java @@ -216,21 +216,4 @@ public class FreemarkerGenerator implements Generator { position=0; } } - -/* private static class DateAdapter implements TemplateHashModel { - Date date; - - private DateAdapter(Date aDate) { - date = aDate; - } - - public boolean isEmpty() { - return false; - } - - public TemplateModel get(String aKey) throws TemplateModelException { - return makeAdapter(new SimpleDateFormat(aKey).format(date)); - } - } -*/ } diff --git a/source/mir/producer/EntityBatchingProducerNode.java b/source/mir/producer/EntityBatchingProducerNode.java index 19df0f18..5f3b2bf8 100755 --- a/source/mir/producer/EntityBatchingProducerNode.java +++ b/source/mir/producer/EntityBatchingProducerNode.java @@ -12,8 +12,8 @@ public class EntityBatchingProducerNode implements ProducerNode { private String batchInfoKey; private String batchDataKey; - private StorageObject storage; - private EntityAdapterDefinition definition; + private EntityAdapterModel model; + private String definition; private String whereClause; private String orderByClause; private int nrEntitiesToSkip; @@ -25,15 +25,15 @@ public class EntityBatchingProducerNode implements ProducerNode { public EntityBatchingProducerNode( String aBatchDataKey, String aBatchInfoKey, - StorageObject aStorage, - EntityAdapterDefinition aDefinition, + EntityAdapterModel aModel, + String aDefinition, String aWhereClause, String anOrderByClause, int aNrEntitiesPerBatch, int aMinNrEntitiesInFirstBatch, int aNrEntitiesToSkip, ProducerNode aBatchSubNode) { - this(aBatchDataKey, aBatchInfoKey, aStorage, aDefinition, aWhereClause, + this(aBatchDataKey, aBatchInfoKey, aModel, aDefinition, aWhereClause, anOrderByClause, aNrEntitiesPerBatch, aMinNrEntitiesInFirstBatch, aNrEntitiesToSkip, aBatchSubNode, null); } @@ -42,8 +42,8 @@ public class EntityBatchingProducerNode implements ProducerNode { public EntityBatchingProducerNode( String aBatchDataKey, String aBatchInfoKey, - StorageObject aStorage, - EntityAdapterDefinition aDefinition, + EntityAdapterModel aModel, + String aDefinition, String aWhereClause, String anOrderByClause, int aNrEntitiesPerBatch, @@ -59,7 +59,7 @@ public class EntityBatchingProducerNode implements ProducerNode { batchDataKey = aBatchDataKey; batchInfoKey = aBatchInfoKey; - storage = aStorage; + model = aModel; definition = aDefinition; whereClause = aWhereClause; orderByClause = anOrderByClause; @@ -99,7 +99,7 @@ public class EntityBatchingProducerNode implements ProducerNode { batchesData = new Vector(); batchLocations = new Vector(); - nrEntities = storage.getSize(expandedWhereClause)-nrEntitiesToSkip; + nrEntities = model.getMappingForName(definition).getStorage().getSize(expandedWhereClause)-nrEntitiesToSkip; nrEntitiesInFirstBatch = nrEntities % nrEntitiesPerBatch; while (nrEntitiesInFirstBatch=nrEntitiesPerBatch) nrEntitiesInFirstBatch = nrEntitiesInFirstBatch + nrEntitiesPerBatch; @@ -152,8 +152,8 @@ public class EntityBatchingProducerNode implements ProducerNode { else batchData.put("next", null); - Iterator j = new EntityIteratorAdapter(storage, expandedWhereClause, expandedOrderByClause, - location.nrEntities, definition, location.nrEntities, location.firstEntity); + Iterator j = new EntityIteratorAdapter(expandedWhereClause, expandedOrderByClause, + location.nrEntities, model, definition, location.nrEntities, location.firstEntity); List entities = new Vector(); while (j.hasNext()) diff --git a/source/mir/producer/EntityEnumeratingProducerNode.java b/source/mir/producer/EntityEnumeratingProducerNode.java index e40a58c4..f3902e32 100755 --- a/source/mir/producer/EntityEnumeratingProducerNode.java +++ b/source/mir/producer/EntityEnumeratingProducerNode.java @@ -11,22 +11,29 @@ public class EntityEnumeratingProducerNode extends ProducerNodeDecorator { private Map verbs; private EntityEnumeratingProducerNodeVerb defaultVerb; private String key; - private EntityAdapterDefinition definition; - private StorageObject storage; + private EntityAdapterModel model; + private String definition; + + public EntityEnumeratingProducerNode( + String aKey, + EntityAdapterModel aModel, String aDefinition, + ProducerNode aSubNode) { - public EntityEnumeratingProducerNode(String aKey, StorageObject aStorage, EntityAdapterDefinition aDefinition, ProducerNode aSubNode) { super(aSubNode); defaultVerb = null; verbs = new HashMap(); - storage = aStorage; + model = aModel; definition = aDefinition; key = aKey; } - public EntityEnumeratingProducerNode(String aKey, StorageObject aStorage, EntityAdapterDefinition aDefinition, - String aDefaultWhereClause, String aDefaultOrderByClause, ProducerNode aSubNode) { - this(aKey, aStorage, aDefinition, aSubNode); + public EntityEnumeratingProducerNode( + String aKey, + EntityAdapterModel aModel, String aDefinition, + String aDefaultWhereClause, String aDefaultOrderByClause, + ProducerNode aSubNode) { + this(aKey, aModel, aDefinition, aSubNode); defaultVerb = new EntityEnumeratingProducerNodeVerb(aDefaultWhereClause, aDefaultOrderByClause); } @@ -43,10 +50,10 @@ public class EntityEnumeratingProducerNode extends ProducerNodeDecorator { try { browser = new EntityIteratorAdapter( - storage, ParameterExpander.expandExpression( aValueMap, verb.whereClause ), ParameterExpander.expandExpression( aValueMap, verb.orderByClause ), -1, + model, definition ); while (browser.hasNext()) { diff --git a/source/mir/producer/EntityListProducerNode.java b/source/mir/producer/EntityListProducerNode.java index 39e3c1a2..ed7fe37f 100755 --- a/source/mir/producer/EntityListProducerNode.java +++ b/source/mir/producer/EntityListProducerNode.java @@ -12,17 +12,18 @@ public class EntityListProducerNode extends ProducerNodeDecorator { private String whereClause; private String orderByClause; private int batchSize; - private EntityAdapterDefinition definition; - private StorageObject storage; + private EntityAdapterModel model; + private String definition; private int limit; private int skip; - public EntityListProducerNode(String aKey, StorageObject aStorage, - EntityAdapterDefinition aDefinition, String aWhereClause, String anOrderByClause, + public EntityListProducerNode(String aKey, + EntityAdapterModel aModel, String aDefinition, + String aWhereClause, String anOrderByClause, int aLimit, int aSkip, ProducerNode aSubNode) { super(aSubNode); - storage = aStorage; + model = aModel; definition = aDefinition; key = aKey; whereClause = aWhereClause; @@ -36,10 +37,10 @@ public class EntityListProducerNode extends ProducerNodeDecorator { aValueMap.put(key, new CachingRewindableIterator( new EntityIteratorAdapter( - storage, ParameterExpander.expandExpression( aValueMap, whereClause ), ParameterExpander.expandExpression( aValueMap, orderByClause ), 20, + model, definition, limit, skip ) diff --git a/source/mircoders/entity/adapter/AudioAdapterDefinition.java b/source/mircoders/entity/adapter/AudioAdapterDefinition.java deleted file mode 100755 index f2cb7f96..00000000 --- a/source/mircoders/entity/adapter/AudioAdapterDefinition.java +++ /dev/null @@ -1,22 +0,0 @@ -package mircoders.entity.adapter; - -import mir.entity.*; -import mir.entity.adapter.*; -import mircoders.storage.*; - -public class AudioAdapterDefinition extends EntityAdapterDefinition { - private static AudioAdapterDefinition instance; - - public static AudioAdapterDefinition getInstance() { - synchronized (AudioAdapterDefinition.class) { - if (instance == null) { - instance = new AudioAdapterDefinition(); - } - return instance; - } - } - - public AudioAdapterDefinition() { - super(); - } -} diff --git a/source/mircoders/entity/adapter/BreakingAdapterDefinition.java b/source/mircoders/entity/adapter/BreakingAdapterDefinition.java deleted file mode 100755 index 8a843b2f..00000000 --- a/source/mircoders/entity/adapter/BreakingAdapterDefinition.java +++ /dev/null @@ -1,22 +0,0 @@ -package mircoders.entity.adapter; - -import mir.entity.*; -import mir.entity.adapter.*; -import mircoders.storage.*; - -public class BreakingAdapterDefinition extends EntityAdapterDefinition { - private static BreakingAdapterDefinition instance; - - public static BreakingAdapterDefinition getInstance() { - synchronized (BreakingAdapterDefinition.class) { - if (instance == null) { - instance = new BreakingAdapterDefinition(); - } - return instance; - } - } - - public BreakingAdapterDefinition() { - super(); - } -} diff --git a/source/mircoders/entity/adapter/CommentAdapterDefinition.java b/source/mircoders/entity/adapter/CommentAdapterDefinition.java deleted file mode 100755 index 87201761..00000000 --- a/source/mircoders/entity/adapter/CommentAdapterDefinition.java +++ /dev/null @@ -1,316 +0,0 @@ -package mircoders.entity.adapter; - -import mir.entity.*; -import mir.entity.adapter.*; -import mircoders.storage.*; - -public class CommentAdapterDefinition extends EntityAdapterDefinition { - private static CommentAdapterDefinition instance; - - public static CommentAdapterDefinition getInstance() { - synchronized (CommentAdapterDefinition.class) { - if (instance == null) { - instance = new CommentAdapterDefinition(); - } - return instance; - } - } - - public CommentAdapterDefinition() { - super(); - - addDBDateField("creationdate", "webdb_create"); - addCalculatedField("to_content", new CommentToContentField()); - } - - public EntityAdapter makeEntityAdapter(Entity anEntity) { - return new EntityAdapter(anEntity, this); - } - - private class CommentToContentField implements CalculatedField { - public Object getValue(EntityAdapter anEntityAdapter) { - try { - return getRelation( - DatabaseContent.getInstance(), - "id="+anEntityAdapter.get("to_media"), - "id", - ContentAdapterDefinition.getInstance()); - } - catch (Throwable t) { - throw new RuntimeException(t.getMessage()); - } - } - } - -} - - -// String mirconf_extLinkName = MirConfig.getProp("Producer.ExtLinkName"); -// String mirconf_intLinkName = MirConfig.getProp("Producer.IntLinkName"); -// String mirconf_mailLinkName = MirConfig.getProp("Producer.MailLinkName"); -// String mirconf_imageRoot = MirConfig.getProp("Producer.ImageRoot"); - - -// if (field.equals("date_formatted")) -// { -// if (hasValueForField("date")) -// returnField = StringUtil.webdbDate2readableDate(getValue("date")); -// } -// else if (field.equals("description_parsed")) -// returnField = getDescriptionParsed(); -// else if (field.equals("description_sentence")) -// returnField = getDescriptionSentence(); -// else if (field.equals("content_data_parsed")) -// returnField = getContentDataParsed(); - - -// if (key.equals("to_comments")) { -// try { -// _entCache.put(key, getComments()); -// return (TemplateModel)_entCache.get(key); -// } catch (Exception ex) { -// theLog.printWarning("-- getComments: could not fetch data " + ex.toString()); -// throw new TemplateModelException(ex.toString()); -// } -// } -// if (key.equals("to_media_images")) { -// try { -// _entCache.put(key, getImagesForContent()); -// return (TemplateModel)_entCache.get(key); -// } -// catch (Exception ex) { -// theLog.printWarning("-- getImagesForContent: could not fetch data " + ex.toString()); -// throw new TemplateModelException(ex.toString()); -// } -// } -// if (key.equals("to_media_audio")) { -// try { -//// _entCache.put(key, getAudioForContent()); -// return (TemplateModel)_entCache.get(key); -// } -// catch (Exception ex) { -// theLog.printWarning("-- getAudioForContent: could not fetch data " + ex.toString()); -// throw new TemplateModelException(ex.toString()); -// } -// } -// if (key.equals("to_media_video")) { -// try { -// _entCache.put(key, getVideoForContent()); -/* return (TemplateModel)_entCache.get(key); - } - catch (Exception ex) { - theLog.printWarning("-- getVideoForContent: could not fetch data " + ex.toString()); - throw new TemplateModelException(ex.toString()); - } - } - if (key.equals("to_media_other")) { - try { - _entCache.put(key, getOtherMediaForContent()); - return (TemplateModel)_entCache.get(key); - } - catch (Exception ex) { - theLog.printWarning("-- getOtherMediaForContent: could not fetch data " + ex.toString()); - throw new TemplateModelException(ex.toString()); - } - } - else if (key.equals("to_media_icon")) { - try { - _entCache.put(key, getUploadedMediaForNewswire()); - return (TemplateModel)_entCache.get(key); - } - catch (Exception ex) { - theLog.printWarning("-- getUploadedMediaForNewswire: could not fetch data " + ex.toString()); - throw new TemplateModelException(ex.toString()); - } - } - else if (key.equals("to_topics")) { - try { - _entCache.put(key, - DatabaseContentToTopics.getInstance().getTopics(this)); - return (TemplateModel)_entCache.get(key); - } - catch (Exception ex) { - theLog.printWarning("-- getTopics: could not fetch data " + ex.toString()); - throw new TemplateModelException(ex.toString()); - } - } -*/ - - - - -/* - private String getContentDataParsed() { - String returnField = getValue("content_data"); - if (returnField!=null & returnField.length()>0 ) { - returnField=StringUtil.deleteForbiddenTags(returnField); - //create http-links and email-links - if (getValue("is_html").equals("0")) { - returnField = StringUtil.createHTML(returnField,mirconf_imageRoot, - mirconf_mailLinkName,mirconf_extLinkName, - mirconf_intLinkName); - } - returnField = StringUtil.decodeHTMLinTags(returnField); - } - return returnField; - } - - private String getDescriptionSentence() { - String returnField = getValue("description"); - if (returnField != null && returnField.length()>0) { - returnField = StringUtil.removeHTMLTags(returnField); - int endOfFirstSentence=StringUtil.findEndOfSentence(returnField,0); - if (endOfFirstSentence > 0){ - returnField = returnField.substring(0,endOfFirstSentence); - } - } - return returnField; - } - - private String getDescriptionParsed() { - String returnField = getValue("description"); - if (returnField != null && returnField.length()>0) { - returnField = StringUtil.deleteForbiddenTags(returnField); - if (getValue("is_html").equals("0")) { - returnField = StringUtil.createHTML(returnField,mirconf_imageRoot, - mirconf_mailLinkName,mirconf_extLinkName, - mirconf_intLinkName); - } - returnField = StringUtil.decodeHTMLinTags(returnField); - } - return returnField; - } - - - private EntityList getComments() throws StorageObjectException { - return ((DatabaseContent)theStorageObject).getComments(this); - } - - // @todo this needs to optimized. expensive SQL - private SimpleHash getUploadedMediaForNewswire() - throws StorageObjectException, TemplateModelException - { - // fetching/setting the images - // return to_media_icons - String tinyIcon = null, iconAlt = null; - MirMedia mediaHandler = null; - EntityUploadedMedia uploadedMedia; - Entity mediaType; - SimpleHash returnHash = new SimpleHash(); - - EntityList upMediaEntityList = - DatabaseContentToMedia.getInstance().getUploadedMedia(this); - if (upMediaEntityList!=null && upMediaEntityList.getCount()>=1) { - - for (int n=0; n < upMediaEntityList.size();n++) { - uploadedMedia = (EntityUploadedMedia)upMediaEntityList.elementAt(n); - mediaType = uploadedMedia.getMediaType(); - try { - mediaHandler = MediaHelper.getHandler( mediaType ); - } catch (MirMediaException ex) { - throw new TemplateModelException(ex.toString()); - } - //the "best" media type to show - if (mediaHandler.isVideo()) { - tinyIcon = MirConfig.getProp("Producer.Icon.TinyVideo"); - iconAlt = "Video"; - break; - } else if (mediaHandler.isAudio()) { - tinyIcon = MirConfig.getProp("Producer.Icon.TinyAudio"); - iconAlt = "Audio"; - } else if (tinyIcon == null && !mediaHandler.isImage()) { - tinyIcon = mediaHandler.getTinyIcon(); - iconAlt = mediaHandler.getIconAlt(); - } - - } - //it only has image(s) - if (tinyIcon == null) { - tinyIcon = MirConfig.getProp("Producer.Icon.TinyImage"); - iconAlt = "Image"; - } - // uploadedMedia Entity list is empty. - // we only have text - } else { - tinyIcon = MirConfig.getProp("Producer.Icon.TinyText"); - iconAlt = "Text"; - } - returnHash.put("tiny_icon", mirconf_imageRoot+"/"+tinyIcon); - returnHash.put("icon_alt", iconAlt); - return returnHash; - } - - private boolean hasMedia() throws StorageObjectException - { - if (_hasMedia == null) { - _hasMedia = - new Boolean(DatabaseContentToMedia.getInstance().hasMedia(this)); - } - return _hasMedia.booleanValue(); - } - - //######## @todo all of the following getBlahForContent should have - // and optimized version where LIMIT=1 sql for list view. - private EntityList getImagesForContent() - throws StorageObjectException, TemplateModelException - { - if (hasMedia()) - return DatabaseContentToMedia.getInstance().getImages(this); - else - return null; - } - - private EntityList getAudioForContent() - throws StorageObjectException, TemplateModelException - { - if (hasMedia()) - return DatabaseContentToMedia.getInstance().getAudio(this) ; - else - return null; - } - - private EntityList getVideoForContent() - throws StorageObjectException, TemplateModelException - { - if (hasMedia()) - return DatabaseContentToMedia.getInstance().getVideo(this) ; - else - return null; - } - - private EntityList getOtherMediaForContent() - throws StorageObjectException, TemplateModelException - { - if (hasMedia()) - return DatabaseContentToMedia.getInstance().getOther(this); - else - return null; - } - -} -*/ - - - - - - - - - - - - -// if (field.equals("date_formatted")) -// { -// if (hasValueForField("webdb_create")) -// returnField = StringUtil.dateToReadableDate(getValue("webdb_create")); - - -// else if (field.equals("description_parsed")) { -// /** @todo the config stuff should be moved to StringUtil */ -// String extLinkName = MirConfig.getProp("Producer.ExtLinkName"); -// String intLinkName = MirConfig.getProp("Producer.IntLinkName"); -// String mailLinkName = MirConfig.getProp("Producer.MailLinkName"); -// String imageRoot = MirConfig.getProp("Producer.ImageRoot"); -// returnField = StringUtil.createHTML(getValue("description"),imageRoot,mailLinkName,extLinkName,intLinkName); diff --git a/source/mircoders/entity/adapter/ContentAdapterDefinition.java b/source/mircoders/entity/adapter/ContentAdapterDefinition.java deleted file mode 100755 index 7460aedd..00000000 --- a/source/mircoders/entity/adapter/ContentAdapterDefinition.java +++ /dev/null @@ -1,183 +0,0 @@ -package mircoders.entity.adapter; - -import java.util.*; -import mir.storage.*; -import mir.entity.*; -import mir.entity.adapter.*; -import mir.media.*; -import mir.util.*; -import mircoders.storage.*; -import mircoders.global.*; -import mircoders.entity.*; -import mircoders.localizer.*; - -public class ContentAdapterDefinition extends EntityAdapterDefinition { - private static ContentAdapterDefinition instance; - - public static ContentAdapterDefinition getInstance() { - synchronized (ContentAdapterDefinition.class) { - if (instance == null) { - instance = new ContentAdapterDefinition(); - } - return instance; - } - } - - public ContentAdapterDefinition() { - super(); - - addDBDateField("creationdate", "webdb_create"); - addDBDateField("changedate", "webdb_lastchange"); - addMirDateField("date", "date"); - addCalculatedField("to_topics", new ContentToTopicsField()); - addCalculatedField("to_comments", new ContentToCommentsField()); - try { - addCalculatedField("to_media_images", new ContentToMediaField( - DatabaseImages.getInstance(), ImagesAdapterDefinition.getInstance())); - addCalculatedField("to_uploaded_media", new ContentToMediaField( - DatabaseUploadedMedia.getInstance(), UploadedMediaAdapterDefinition.getInstance())); - addCalculatedField("to_media_audio", new ContentToMediaField( - DatabaseAudio.getInstance(), AudioAdapterDefinition.getInstance())); - addCalculatedField("to_media_video", new ContentToMediaField( - DatabaseVideo.getInstance(), VideoAdapterDefinition.getInstance())); - addCalculatedField("to_media_other", new ContentToMediaField( - DatabaseOther.getInstance(), OtherAdapterDefinition.getInstance())); - addCalculatedField("to_media_icon", new ContentToIconField()); - } - catch (Throwable t) { - System.out.println(t.getMessage()); - t.printStackTrace(System.out); - } - - addCalculatedField("description_parsed", new FilteredField("description")); - addCalculatedField("content_data_parsed", new FilteredField("content_data")); - } - - private class FilteredField implements CalculatedField { - String fieldName; - - public FilteredField(String aFieldName) { - fieldName = aFieldName; - } - - public Object getValue(EntityAdapter anEntityAdapter) { - if (anEntityAdapter.get("is_html").equals("0")) { - return MirGlobal.localizer().producerTool().filterText((String) anEntityAdapter.get(fieldName)); - } - else { - return anEntityAdapter.get(fieldName); - } - } - } - - private class ContentToCommentsField implements CalculatedField { - public Object getValue(EntityAdapter anEntityAdapter) { - try { - return getRelation( - DatabaseComment.getInstance(), - "to_media="+anEntityAdapter.get("id"), - "webdb_create", - CommentAdapterDefinition.getInstance()); - } - catch (Throwable t) { - throw new RuntimeException(t.getMessage()); - } - } - } - - private class ContentToTopicsField implements CalculatedField { - public Object getValue(EntityAdapter anEntityAdapter) { - try { - return getRelation( - DatabaseTopics.getInstance(), - "exists (select * from content_x_topic where content_id="+anEntityAdapter.get("id")+" and topic_id=id)", - "title", - TopicsAdapterDefinition.getInstance()); - } - catch (Throwable t) { - throw new RuntimeException(t.getMessage()); - } - } - } - - private class ContentToMediaField implements CalculatedField { - StorageObject storage; - EntityAdapterDefinition definition; - - public ContentToMediaField(StorageObject aStorage, EntityAdapterDefinition aDefinition) { - definition = aDefinition; - storage = aStorage; - } - - public Object getValue(EntityAdapter anEntityAdapter) { - try { - return getRelation( - storage, - "exists (select * from content_x_media where content_id="+anEntityAdapter.get("id")+" and media_id=id)", - "title", - definition); - } - catch (Throwable t) { - throw new RuntimeException(t.getMessage()); - } - } - } - - private class ContentToIconField implements CalculatedField { - public Object getValue(EntityAdapter anEntityAdapter) { - EntityAdapter media; - Entity mediaType; - RewindableIterator iterator; - Map result; - MirMedia mediaHandler; - String tinyIcon; - String iconAlt; - - try { - iterator = (RewindableIterator) (anEntityAdapter.get("to_uploaded_media")); - iterator.rewind(); - - tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyText"); - iconAlt = "Text"; - - if (iterator.hasNext()) { - media = (EntityAdapter) iterator.next(); - - mediaType = ((EntityUploadedMedia) (media.getEntity())).getMediaType(); - mediaHandler = MediaHelper.getHandler( mediaType ); - - if (mediaHandler.isVideo()) { - tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyVideo"); - iconAlt = "Video"; - } - else if (mediaHandler.isAudio()) { - tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyAudio"); - iconAlt = "Audio"; - } - else if (mediaHandler.isImage()) { - tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyImage"); - iconAlt = "Image"; - } - else { - tinyIcon = mediaHandler.getTinyIcon(); - iconAlt = mediaHandler.getIconAlt(); - } - - } - } - catch (Throwable t) { - System.out.println("ContentToIconField: exception: " +t.getMessage()); - t.printStackTrace(System.out); - throw new RuntimeException(t.getMessage()); - } - - result = new HashMap(); - result.put("tiny_icon", tinyIcon); - result.put("icon_alt", iconAlt); - - return result; - } - } -} - - diff --git a/source/mircoders/entity/adapter/FeatureAdapterDefinition.java b/source/mircoders/entity/adapter/FeatureAdapterDefinition.java deleted file mode 100755 index 0e98f58d..00000000 --- a/source/mircoders/entity/adapter/FeatureAdapterDefinition.java +++ /dev/null @@ -1,22 +0,0 @@ -package mircoders.entity.adapter; - -import mir.entity.*; -import mir.entity.adapter.*; -import mircoders.storage.*; - -public class FeatureAdapterDefinition extends EntityAdapterDefinition { - private static FeatureAdapterDefinition instance; - - public static FeatureAdapterDefinition getInstance() { - synchronized (FeatureAdapterDefinition.class) { - if (instance == null) { - instance = new FeatureAdapterDefinition(); - } - return instance; - } - } - - public FeatureAdapterDefinition() { - super(); - } -} diff --git a/source/mircoders/entity/adapter/ImagesAdapterDefinition.java b/source/mircoders/entity/adapter/ImagesAdapterDefinition.java deleted file mode 100755 index c8a4c9c2..00000000 --- a/source/mircoders/entity/adapter/ImagesAdapterDefinition.java +++ /dev/null @@ -1,22 +0,0 @@ -package mircoders.entity.adapter; - -import mir.entity.*; -import mir.entity.adapter.*; -import mircoders.storage.*; - -public class ImagesAdapterDefinition extends EntityAdapterDefinition { - private static ImagesAdapterDefinition instance; - - public static ImagesAdapterDefinition getInstance() { - synchronized (ImagesAdapterDefinition.class) { - if (instance == null) { - instance = new ImagesAdapterDefinition(); - } - return instance; - } - } - - public ImagesAdapterDefinition() { - super(); - } -} diff --git a/source/mircoders/entity/adapter/LanguageAdapterDefinition.java b/source/mircoders/entity/adapter/LanguageAdapterDefinition.java deleted file mode 100755 index 7a49217a..00000000 --- a/source/mircoders/entity/adapter/LanguageAdapterDefinition.java +++ /dev/null @@ -1,22 +0,0 @@ -package mircoders.entity.adapter; - -import mir.entity.*; -import mir.entity.adapter.*; -import mircoders.storage.*; - -public class LanguageAdapterDefinition extends EntityAdapterDefinition { - private static LanguageAdapterDefinition instance; - - public static LanguageAdapterDefinition getInstance() { - synchronized (LanguageAdapterDefinition.class) { - if (instance == null) { - instance = new LanguageAdapterDefinition(); - } - return instance; - } - } - - public LanguageAdapterDefinition() { - super(); - } -} diff --git a/source/mircoders/entity/adapter/LinksImcsAdapterDefinition.java b/source/mircoders/entity/adapter/LinksImcsAdapterDefinition.java deleted file mode 100755 index 9c66c624..00000000 --- a/source/mircoders/entity/adapter/LinksImcsAdapterDefinition.java +++ /dev/null @@ -1,22 +0,0 @@ -package mircoders.entity.adapter; - -import mir.entity.*; -import mir.entity.adapter.*; -import mircoders.storage.*; - -public class LinksImcsAdapterDefinition extends EntityAdapterDefinition { - private static LinksImcsAdapterDefinition instance; - - public static LinksImcsAdapterDefinition getInstance() { - synchronized (LinksImcsAdapterDefinition.class) { - if (instance == null) { - instance = new LinksImcsAdapterDefinition(); - } - return instance; - } - } - - public LinksImcsAdapterDefinition() { - super(); - } -} diff --git a/source/mircoders/entity/adapter/MediaAdapterDefinition.java b/source/mircoders/entity/adapter/MediaAdapterDefinition.java deleted file mode 100755 index 70d078ed..00000000 --- a/source/mircoders/entity/adapter/MediaAdapterDefinition.java +++ /dev/null @@ -1,22 +0,0 @@ -package mircoders.entity.adapter; - -import mir.entity.*; -import mir.entity.adapter.*; -import mircoders.storage.*; - -public class MediaAdapterDefinition extends EntityAdapterDefinition { - private static MediaAdapterDefinition instance; - - public static MediaAdapterDefinition getInstance() { - synchronized (MediaAdapterDefinition.class) { - if (instance == null) { - instance = new MediaAdapterDefinition(); - } - return instance; - } - } - - public MediaAdapterDefinition() { - super(); - } -} diff --git a/source/mircoders/entity/adapter/OtherAdapterDefinition.java b/source/mircoders/entity/adapter/OtherAdapterDefinition.java deleted file mode 100755 index 33ab0ec0..00000000 --- a/source/mircoders/entity/adapter/OtherAdapterDefinition.java +++ /dev/null @@ -1,22 +0,0 @@ -package mircoders.entity.adapter; - -import mir.entity.*; -import mir.entity.adapter.*; -import mircoders.storage.*; - -public class OtherAdapterDefinition extends EntityAdapterDefinition { - private static OtherAdapterDefinition instance; - - public static OtherAdapterDefinition getInstance() { - synchronized (OtherAdapterDefinition.class) { - if (instance == null) { - instance = new OtherAdapterDefinition(); - } - return instance; - } - } - - public OtherAdapterDefinition() { - super(); - } -} diff --git a/source/mircoders/entity/adapter/TopicsAdapterDefinition.java b/source/mircoders/entity/adapter/TopicsAdapterDefinition.java deleted file mode 100755 index 71147005..00000000 --- a/source/mircoders/entity/adapter/TopicsAdapterDefinition.java +++ /dev/null @@ -1,22 +0,0 @@ -package mircoders.entity.adapter; - -import mir.entity.*; -import mir.entity.adapter.*; -import mircoders.storage.*; - -public class TopicsAdapterDefinition extends EntityAdapterDefinition { - private static TopicsAdapterDefinition instance; - - public static TopicsAdapterDefinition getInstance() { - synchronized (TopicsAdapterDefinition.class) { - if (instance == null) { - instance = new TopicsAdapterDefinition(); - } - return instance; - } - } - - public TopicsAdapterDefinition() { - super(); - } -} diff --git a/source/mircoders/entity/adapter/UploadedMediaAdapterDefinition.java b/source/mircoders/entity/adapter/UploadedMediaAdapterDefinition.java deleted file mode 100755 index 4a2d3a16..00000000 --- a/source/mircoders/entity/adapter/UploadedMediaAdapterDefinition.java +++ /dev/null @@ -1,22 +0,0 @@ -package mircoders.entity.adapter; - -import mir.entity.*; -import mir.entity.adapter.*; -import mircoders.storage.*; - -public class UploadedMediaAdapterDefinition extends EntityAdapterDefinition { - private static UploadedMediaAdapterDefinition instance; - - public static UploadedMediaAdapterDefinition getInstance() { - synchronized (UploadedMediaAdapterDefinition.class) { - if (instance == null) { - instance = new UploadedMediaAdapterDefinition(); - } - return instance; - } - } - - public UploadedMediaAdapterDefinition() { - super(); - } -} diff --git a/source/mircoders/entity/adapter/UsersAdapterDefinition.java b/source/mircoders/entity/adapter/UsersAdapterDefinition.java deleted file mode 100755 index b54ca739..00000000 --- a/source/mircoders/entity/adapter/UsersAdapterDefinition.java +++ /dev/null @@ -1,22 +0,0 @@ -package mircoders.entity.adapter; - -import mir.entity.*; -import mir.entity.adapter.*; -import mircoders.storage.*; - -public class UsersAdapterDefinition extends EntityAdapterDefinition { - private static UsersAdapterDefinition instance; - - public static UsersAdapterDefinition getInstance() { - synchronized (UsersAdapterDefinition.class) { - if (instance == null) { - instance = new UsersAdapterDefinition(); - } - return instance; - } - } - - public UsersAdapterDefinition() { - super(); - } -} diff --git a/source/mircoders/entity/adapter/VideoAdapterDefinition.java b/source/mircoders/entity/adapter/VideoAdapterDefinition.java deleted file mode 100755 index 1435b382..00000000 --- a/source/mircoders/entity/adapter/VideoAdapterDefinition.java +++ /dev/null @@ -1,22 +0,0 @@ -package mircoders.entity.adapter; - -import mir.entity.*; -import mir.entity.adapter.*; -import mircoders.storage.*; - -public class VideoAdapterDefinition extends EntityAdapterDefinition { - private static VideoAdapterDefinition instance; - - public static VideoAdapterDefinition getInstance() { - synchronized (VideoAdapterDefinition.class) { - if (instance == null) { - instance = new VideoAdapterDefinition(); - } - return instance; - } - } - - public VideoAdapterDefinition() { - super(); - } -} diff --git a/source/mircoders/global/ProducerEngine.java b/source/mircoders/global/ProducerEngine.java index 52e9a2ff..19f94969 100755 --- a/source/mircoders/global/ProducerEngine.java +++ b/source/mircoders/global/ProducerEngine.java @@ -8,13 +8,13 @@ import multex.Exc; import multex.Failure; public class ProducerEngine { - private Map producers; +// private Map producers; private JobQueue producerJobQueue; private Thread queueThread; private PrintWriter log; protected ProducerEngine() { - producers = MirGlobal.localizer().producers().factories(); +// producers = MirGlobal.localizer().producers().factories(); producerJobQueue = new JobQueue(); try { RandomAccessFile raFile = (new RandomAccessFile(MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Producer.Logfile"), "rw")); @@ -66,12 +66,9 @@ public class ProducerEngine { startTime = System.currentTimeMillis(); - aLogger.println("Producing (" + aProducerFactory + "," + aVerb + ")
"); + aLogger.println("Producing (" + aProducerFactory + "," + aVerb + ")"); - if (producers == null) - aLogger.println("??
"); - - ProducerFactory factory = (ProducerFactory) producers.get(aProducerFactory); + ProducerFactory factory = (ProducerFactory) MirGlobal.localizer().producers().factories().get(aProducerFactory); if (factory == null ) throw new Exception("No producer factory '"+aProducerFactory+"' present."); @@ -114,7 +111,7 @@ public class ProducerEngine { log.println("Producing job: "+factoryName+"."+verb); try { - factory = (ProducerFactory) producers.get(factoryName); + factory = (ProducerFactory) MirGlobal.localizer().producers().factories().get( factoryName ); if (factory!=null) { synchronized(factory) { diff --git a/source/mircoders/localizer/MirCachingLocalizerDecorator.java b/source/mircoders/localizer/MirCachingLocalizerDecorator.java index 8b16b056..ca7542d3 100755 --- a/source/mircoders/localizer/MirCachingLocalizerDecorator.java +++ b/source/mircoders/localizer/MirCachingLocalizerDecorator.java @@ -5,7 +5,8 @@ public class MirCachingLocalizerDecorator implements MirLocalizer { private MirProducerLocalizer producerLocalizer; private MirGeneratorLocalizer generatorLocalizer; private MirOpenPostingLocalizer openPostingsLocalizer; - private MirProducerToolLocalizer producerToolLocalizer; + private MirProducerAssistantLocalizer producerAssistantLocalizer; + private MirDataModelLocalizer dataModelLocalizer; public MirCachingLocalizerDecorator(MirLocalizer aLocalizer) { localizer = aLocalizer; @@ -35,12 +36,20 @@ public class MirCachingLocalizerDecorator implements MirLocalizer { return openPostingsLocalizer; } - public MirProducerToolLocalizer producerTool() { - if (producerToolLocalizer==null) { - producerToolLocalizer = localizer.producerTool(); + public MirProducerAssistantLocalizer producerAssistant() { + if (producerAssistantLocalizer==null) { + producerAssistantLocalizer = localizer.producerAssistant(); } - return producerToolLocalizer; + return producerAssistantLocalizer; + } + + public MirDataModelLocalizer dataModel() { + if (dataModelLocalizer==null) { + dataModelLocalizer = localizer.dataModel(); + } + + return dataModelLocalizer; } } \ No newline at end of file diff --git a/source/mircoders/localizer/MirDataModelLocalizer.java b/source/mircoders/localizer/MirDataModelLocalizer.java new file mode 100755 index 00000000..4b8c8a15 --- /dev/null +++ b/source/mircoders/localizer/MirDataModelLocalizer.java @@ -0,0 +1,7 @@ +package mircoders.localizer; + +import mir.entity.adapter.*; + +public interface MirDataModelLocalizer { + public EntityAdapterModel adapterModel() throws MirLocalizerException, MirLocalizerFailure; +} \ No newline at end of file diff --git a/source/mircoders/localizer/MirGeneratorLocalizer.java b/source/mircoders/localizer/MirGeneratorLocalizer.java index b6852bb6..ea2a7ca2 100755 --- a/source/mircoders/localizer/MirGeneratorLocalizer.java +++ b/source/mircoders/localizer/MirGeneratorLocalizer.java @@ -3,5 +3,5 @@ package mircoders.localizer; import mir.generator.*; public interface MirGeneratorLocalizer { - public Generator makeGenerator(String anIdentifier) throws MirLocalizerException; + public Generator makeGenerator(String anIdentifier) throws MirLocalizerException, MirLocalizerFailure; } \ No newline at end of file diff --git a/source/mircoders/localizer/MirLocalizer.java b/source/mircoders/localizer/MirLocalizer.java index 8e935b48..014d7f26 100755 --- a/source/mircoders/localizer/MirLocalizer.java +++ b/source/mircoders/localizer/MirLocalizer.java @@ -3,6 +3,7 @@ package mircoders.localizer; public interface MirLocalizer { public MirProducerLocalizer producers(); public MirOpenPostingLocalizer openPostings(); - public MirProducerToolLocalizer producerTool(); + public MirProducerAssistantLocalizer producerAssistant(); public MirGeneratorLocalizer generators(); + public MirDataModelLocalizer dataModel(); } \ No newline at end of file diff --git a/source/mircoders/localizer/MirProducerAssistantLocalizer.java b/source/mircoders/localizer/MirProducerAssistantLocalizer.java new file mode 100755 index 00000000..d7af9e03 --- /dev/null +++ b/source/mircoders/localizer/MirProducerAssistantLocalizer.java @@ -0,0 +1,11 @@ +package mircoders.localizer; + +import java.util.*; +import java.io.*; + +public interface MirProducerAssistantLocalizer { + public void initializeGenerationValueSet(Map aValueSet) throws MirLocalizerException, MirLocalizerFailure; + public PrintWriter openWriter(String anIdentifier) throws MirLocalizerException, MirLocalizerFailure; + public void closeWriter(PrintWriter aWriter) throws MirLocalizerException, MirLocalizerFailure; + public String filterText(String aText) throws MirLocalizerException, MirLocalizerFailure; +} diff --git a/source/mircoders/localizer/MirProducerLocalizer.java b/source/mircoders/localizer/MirProducerLocalizer.java index f6d5422c..44abd88f 100755 --- a/source/mircoders/localizer/MirProducerLocalizer.java +++ b/source/mircoders/localizer/MirProducerLocalizer.java @@ -3,5 +3,5 @@ package mircoders.localizer; import java.util.*; public interface MirProducerLocalizer { - public Map factories(); + public Map factories() throws MirLocalizerException, MirLocalizerFailure; } diff --git a/source/mircoders/localizer/MirProducerToolLocalizer.java b/source/mircoders/localizer/MirProducerToolLocalizer.java deleted file mode 100755 index 6b2af6cf..00000000 --- a/source/mircoders/localizer/MirProducerToolLocalizer.java +++ /dev/null @@ -1,11 +0,0 @@ -package mircoders.localizer; - -import java.util.*; -import java.io.*; - -public interface MirProducerToolLocalizer { - public void initializeGenerationValueSet(Map aValueSet); - public PrintWriter openWriter(String anIdentifier) throws MirLocalizerFailure; - public void closeWriter(PrintWriter aWriter); - public String filterText(String aText); -} diff --git a/source/mircoders/localizer/basic/MirBasicDataModelLocalizer.java b/source/mircoders/localizer/basic/MirBasicDataModelLocalizer.java new file mode 100755 index 00000000..0e6d60eb --- /dev/null +++ b/source/mircoders/localizer/basic/MirBasicDataModelLocalizer.java @@ -0,0 +1,236 @@ +package mircoders.localizer.basic; + +import java.util.*; +import mir.entity.*; +import mir.entity.adapter.*; +import mir.media.*; +import mir.misc.*; +import mir.util.*; +import mircoders.storage.*; +import mircoders.global.*; +import mircoders.entity.*; +import mircoders.localizer.*; + +public class MirBasicDataModelLocalizer implements MirDataModelLocalizer { + private EntityAdapterModel model; + + public MirBasicDataModelLocalizer() { + } + + public EntityAdapterModel adapterModel() throws MirLocalizerFailure { + if (model==null) + model = buildModel(); + + return model; + }; + + protected void constructContentAdapterDefinition(EntityAdapterDefinition anEntityAdapterDefinition) throws MirLocalizerFailure { + try { + anEntityAdapterDefinition.addDBDateField("creationdate", "webdb_create"); + anEntityAdapterDefinition.addDBDateField("changedate", "webdb_lastchange"); + anEntityAdapterDefinition.addMirDateField("date", "date"); + anEntityAdapterDefinition.addCalculatedField("to_topics", new ContentToTopicsField()); + anEntityAdapterDefinition.addCalculatedField("to_comments", new ContentToCommentsField()); + + anEntityAdapterDefinition.addCalculatedField("to_media_images", new ContentToMediaField( "image" )); + anEntityAdapterDefinition.addCalculatedField("to_uploaded_media", new ContentToMediaField( "uploadedMedia" )); + anEntityAdapterDefinition.addCalculatedField("to_media_audio", new ContentToMediaField( "audio" )); + anEntityAdapterDefinition.addCalculatedField("to_media_video", new ContentToMediaField( "video" )); + anEntityAdapterDefinition.addCalculatedField("to_media_other", new ContentToMediaField( "otherMedia" )); + anEntityAdapterDefinition.addCalculatedField("to_media_icon", new ContentToIconField()); + + anEntityAdapterDefinition.addCalculatedField("description_parsed", new FilteredField("description")); + anEntityAdapterDefinition.addCalculatedField("content_data_parsed", new FilteredField("content_data")); + } + catch (Throwable t) { + throw new MirLocalizerFailure(t.getMessage(), t); + } + } + + protected void constructCommentAdapterDefinition(EntityAdapterDefinition anEntityAdapterDefinition) throws MirLocalizerFailure { + try { + anEntityAdapterDefinition.addDBDateField("creationdate", "webdb_create"); + anEntityAdapterDefinition.addCalculatedField("to_content", new CommentToContentField()); + } + catch (Throwable t) { + throw new MirLocalizerFailure(t.getMessage(), t); + } + } + + protected EntityAdapterModel buildModel() throws MirLocalizerFailure { + EntityAdapterModel result = new EntityAdapterModel(); + + try { + EntityAdapterDefinition definition; + + definition = new EntityAdapterDefinition(); + constructContentAdapterDefinition( definition ); + result.addMapping( "content", DatabaseContent.getInstance(), definition); + + definition = new EntityAdapterDefinition(); + constructCommentAdapterDefinition( definition ); + result.addMapping( "comment", DatabaseComment.getInstance(), definition); + + result.addMapping( "articleType", DatabaseArticleType.getInstance(), new EntityAdapterDefinition()); + result.addMapping( "breakingNews", DatabaseBreaking.getInstance(), new EntityAdapterDefinition()); + result.addMapping( "feature", DatabaseFeature.getInstance(), new EntityAdapterDefinition()); + result.addMapping( "imageType", DatabaseImageType.getInstance(), new EntityAdapterDefinition()); + result.addMapping( "language", DatabaseLanguage.getInstance(), new EntityAdapterDefinition()); + result.addMapping( "mediaFolder", DatabaseMediafolder.getInstance(), new EntityAdapterDefinition()); + result.addMapping( "mediaType", DatabaseMediaType.getInstance(), new EntityAdapterDefinition()); + result.addMapping( "internalMessage", DatabaseMessages.getInstance(), new EntityAdapterDefinition()); + result.addMapping( "topic", DatabaseTopics.getInstance(), new EntityAdapterDefinition()); + result.addMapping( "user", DatabaseUsers.getInstance(), new EntityAdapterDefinition()); + result.addMapping( "media", DatabaseMedia.getInstance(), new EntityAdapterDefinition()); + result.addMapping( "uploadedMedia", DatabaseUploadedMedia.getInstance(), new EntityAdapterDefinition()); + result.addMapping( "image", DatabaseImages.getInstance(), new EntityAdapterDefinition()); + result.addMapping( "audio", DatabaseAudio.getInstance(), new EntityAdapterDefinition()); + result.addMapping( "video", DatabaseVideo.getInstance(), new EntityAdapterDefinition()); + result.addMapping( "otherMedia", DatabaseOther.getInstance(), new EntityAdapterDefinition()); + } + catch (Throwable t) { + throw new MirLocalizerFailure(t.getMessage(), t); + } + + return result; + } + + protected class CommentToContentField implements EntityAdapterDefinition.CalculatedField { + public Object getValue(EntityAdapter anEntityAdapter) { + try { + return anEntityAdapter.getRelation( + "id="+anEntityAdapter.get("to_media"), + "id", + "content" ); + } + catch (Throwable t) { + throw new RuntimeException(t.getMessage()); + } + } + } + protected class FilteredField implements EntityAdapterDefinition.CalculatedField { + String fieldName; + + public FilteredField(String aFieldName) { + fieldName = aFieldName; + } + + public Object getValue(EntityAdapter anEntityAdapter) { + try { + if (anEntityAdapter.get("is_html").equals("0")) { + return MirGlobal.localizer().producerAssistant().filterText((String) anEntityAdapter.get(fieldName)); + } + else { + return anEntityAdapter.get(fieldName); + } + } + catch (Throwable t) { + throw new RuntimeException(t.getMessage()); + } + } + } + + protected class ContentToCommentsField implements EntityAdapterDefinition.CalculatedField { + public Object getValue(EntityAdapter anEntityAdapter) { + try { + return anEntityAdapter.getRelation( + "to_media="+anEntityAdapter.get("id"), + "webdb_create", + "comment" ); + } + catch (Throwable t) { + throw new RuntimeException(t.getMessage()); + } + } + } + + protected class ContentToTopicsField implements EntityAdapterDefinition.CalculatedField { + public Object getValue(EntityAdapter anEntityAdapter) { + try { + return anEntityAdapter.getRelation( + "exists (select * from content_x_topic where content_id="+anEntityAdapter.get("id")+" and topic_id=id)", + "title", + "topic" ); + } + catch (Throwable t) { + throw new RuntimeException(t.getMessage()); + } + } + } + + protected class ContentToMediaField implements EntityAdapterDefinition.CalculatedField { + String definition; + + public ContentToMediaField(String aDefinition) { + definition = aDefinition; + } + + public Object getValue(EntityAdapter anEntityAdapter) { + try { + return anEntityAdapter.getRelation( + "exists (select * from content_x_media where content_id="+anEntityAdapter.get("id")+" and media_id=id)", + "title", + definition); + } + catch (Throwable t) { + throw new RuntimeException(t.getMessage()); + } + } + } + + protected class ContentToIconField implements EntityAdapterDefinition.CalculatedField { + public Object getValue(EntityAdapter anEntityAdapter) { + EntityAdapter media; + Entity mediaType; + RewindableIterator iterator; + Map result; + MirMedia mediaHandler; + String tinyIcon; + String iconAlt; + + try { + iterator = (RewindableIterator) (anEntityAdapter.get("to_uploaded_media")); + iterator.rewind(); + + tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyText"); + iconAlt = "Text"; + + if (iterator.hasNext()) { + media = (EntityAdapter) iterator.next(); + + mediaType = ((EntityUploadedMedia) (media.getEntity())).getMediaType(); + mediaHandler = MediaHelper.getHandler( mediaType ); + + if (mediaHandler.isVideo()) { + tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyVideo"); + iconAlt = "Video"; + } + else if (mediaHandler.isAudio()) { + tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyAudio"); + iconAlt = "Audio"; + } + else if (mediaHandler.isImage()) { + tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyImage"); + iconAlt = "Image"; + } + else { + tinyIcon = mediaHandler.getTinyIcon(); + iconAlt = mediaHandler.getIconAlt(); + } + + } + } + catch (Throwable t) { + System.out.println("ContentToIconField: exception: " +t.getMessage()); + t.printStackTrace(System.out); + throw new RuntimeException(t.getMessage()); + } + + result = new HashMap(); + result.put("tiny_icon", tinyIcon); + result.put("icon_alt", iconAlt); + + return result; + } + } +} \ No newline at end of file diff --git a/source/mircoders/localizer/basic/MirBasicLocalizer.java b/source/mircoders/localizer/basic/MirBasicLocalizer.java index a0a15f41..729e8ef3 100755 --- a/source/mircoders/localizer/basic/MirBasicLocalizer.java +++ b/source/mircoders/localizer/basic/MirBasicLocalizer.java @@ -19,8 +19,12 @@ public class MirBasicLocalizer implements MirLocalizer { return new MirBasicOpenPostingLocalizer(); } - public MirProducerToolLocalizer producerTool() { - return new MirBasicProducerToolLocalizer(); + public MirProducerAssistantLocalizer producerAssistant() { + return new MirBasicProducerAssistantLocalizer(); } + public MirDataModelLocalizer dataModel() { + return new MirBasicDataModelLocalizer(); + }; + } \ No newline at end of file diff --git a/source/mircoders/localizer/basic/MirBasicProducerToolLocalizer.java b/source/mircoders/localizer/basic/MirBasicProducerAssistantLocalizer.java similarity index 97% rename from source/mircoders/localizer/basic/MirBasicProducerToolLocalizer.java rename to source/mircoders/localizer/basic/MirBasicProducerAssistantLocalizer.java index 9d99449c..7c8e8f7d 100755 --- a/source/mircoders/localizer/basic/MirBasicProducerToolLocalizer.java +++ b/source/mircoders/localizer/basic/MirBasicProducerAssistantLocalizer.java @@ -10,7 +10,7 @@ import mircoders.storage.*; import mircoders.localizer.*; import mircoders.global.*; -public class MirBasicProducerToolLocalizer implements MirProducerToolLocalizer { +public class MirBasicProducerAssistantLocalizer implements MirProducerAssistantLocalizer { protected static Logfile logger = Logfile.getInstance( MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Mir.Localizer.Logfile")); public void initializeGenerationValueSet(Map aValueSet) { diff --git a/source/mircoders/localizer/basic/MirBasicProducerLocalizer.java b/source/mircoders/localizer/basic/MirBasicProducerLocalizer.java index f35ede5e..d9a41783 100755 --- a/source/mircoders/localizer/basic/MirBasicProducerLocalizer.java +++ b/source/mircoders/localizer/basic/MirBasicProducerLocalizer.java @@ -3,17 +3,28 @@ package mircoders.localizer.basic; import java.util.*; import mir.producer.*; import mir.misc.*; +import mir.entity.adapter.*; +import mircoders.global.*; import mircoders.global.*; import mircoders.localizer.*; import mircoders.producer.*; public class MirBasicProducerLocalizer implements MirProducerLocalizer { private Map producerFactories; + protected EntityAdapterModel model; protected static Logfile logger = Logfile.getInstance( MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Mir.Localizer.Logfile")); public MirBasicProducerLocalizer() { producerFactories = new HashMap(); + try { + model = MirGlobal.localizer().dataModel().adapterModel(); + } + catch (Throwable t) { + logger.printError("MirBasicProducerLocalizer(): Exception "+t.getMessage()); + model = new EntityAdapterModel(); + } + setupFactories(producerFactories); } diff --git a/source/mircoders/producer/GeneratingProducerNode.java b/source/mircoders/producer/GeneratingProducerNode.java index fa8595a7..53be0872 100755 --- a/source/mircoders/producer/GeneratingProducerNode.java +++ b/source/mircoders/producer/GeneratingProducerNode.java @@ -34,10 +34,10 @@ public class GeneratingProducerNode implements ProducerNode { aLogger.println("Generating " + generatorIdentifier + " into " + destinationIdentifier); aLogger.flush(); - printWriter = MirGlobal.localizer().producerTool().openWriter( destinationIdentifier ); + printWriter = MirGlobal.localizer().producerAssistant().openWriter( destinationIdentifier ); generator = MirGlobal.localizer().generators().makeGenerator( generatorIdentifier ); generator.generate(printWriter, aValueMap, aLogger); - MirGlobal.localizer().producerTool().closeWriter( printWriter ); + MirGlobal.localizer().producerAssistant().closeWriter( printWriter ); } catch (Throwable t) { aLogger.println(" error while generating: " + t.getMessage()); diff --git a/source/mircoders/producer/NodedProducerFactory.java b/source/mircoders/producer/NodedProducerFactory.java index ca547de3..220eaa1e 100755 --- a/source/mircoders/producer/NodedProducerFactory.java +++ b/source/mircoders/producer/NodedProducerFactory.java @@ -14,11 +14,16 @@ public class NodedProducerFactory implements ProducerFactory { public mir.producer.Producer makeProducer(String aVerb) throws ProducerFailure { Map baseValues; - baseValues = new HashMap(); + try { + baseValues = new HashMap(); - MirGlobal.localizer().producerTool().initializeGenerationValueSet(baseValues); + MirGlobal.localizer().producerAssistant().initializeGenerationValueSet(baseValues); - return new NodedProducer(rootNode, aVerb, baseValues); + return new NodedProducer(rootNode, aVerb, baseValues); + } + catch (Throwable t) { + throw new ProducerFailure(t.getMessage(), t); + } }; public Iterator verbs() { diff --git a/source/mirlocal/bolivia.indymedia.org/BoliviaLocalizer.java b/source/mirlocal/bolivia.indymedia.org/BoliviaLocalizer.java index 68663f53..aeca249e 100755 --- a/source/mirlocal/bolivia.indymedia.org/BoliviaLocalizer.java +++ b/source/mirlocal/bolivia.indymedia.org/BoliviaLocalizer.java @@ -14,8 +14,8 @@ public class BoliviaLocalizer extends MirBasicLocalizer { return new BoliviaOpenPostingLocalizer(); } - public MirProducerToolLocalizer producerTool() { - return new BoliviaProducerToolLocalizer(); + public MirProducerAssistantLocalizer producerAssistant() { + return new BoliviaProducerAssistantLocalizer(); } } \ No newline at end of file diff --git a/source/mirlocal/bolivia.indymedia.org/BoliviaProducerToolLocalizer.java b/source/mirlocal/bolivia.indymedia.org/BoliviaProducerAssistantLocalizer.java similarity index 85% rename from source/mirlocal/bolivia.indymedia.org/BoliviaProducerToolLocalizer.java rename to source/mirlocal/bolivia.indymedia.org/BoliviaProducerAssistantLocalizer.java index f4513c4e..ab84ad59 100755 --- a/source/mirlocal/bolivia.indymedia.org/BoliviaProducerToolLocalizer.java +++ b/source/mirlocal/bolivia.indymedia.org/BoliviaProducerAssistantLocalizer.java @@ -11,7 +11,7 @@ import mircoders.localizer.*; import mircoders.localizer.basic.*; import mircoders.global.*; -public class BoliviaProducerToolLocalizer extends MirBasicProducerToolLocalizer { +public class BoliviaProducerAssistantLocalizer extends MirBasicProducerAssistantLocalizer { public void initializeGenerationValueSet(Map aValueSet) { super.initializeGenerationValueSet(aValueSet); diff --git a/source/mirlocal/bolivia.indymedia.org/BoliviaProducerLocalizer.java b/source/mirlocal/bolivia.indymedia.org/BoliviaProducerLocalizer.java index 02974554..de93e387 100755 --- a/source/mirlocal/bolivia.indymedia.org/BoliviaProducerLocalizer.java +++ b/source/mirlocal/bolivia.indymedia.org/BoliviaProducerLocalizer.java @@ -7,7 +7,6 @@ import mircoders.localizer.*; import mircoders.localizer.basic.*; import mircoders.producer.*; import mircoders.storage.*; -import mircoders.entity.adapter.*; public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer { @@ -17,9 +16,9 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer { try { contentNode = - new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityEnumeratingProducerNode( "content", model, "content", new CompositeProducerNode( new ProducerNode[] { - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new CompositeProducerNode( new ProducerNode[] { new GeneratingProducerNode( @@ -56,17 +55,17 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer { aProducerNode.clear(); try { aProducerNode.addSubNode( - new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityListProducerNode("newswire", model, "content", "is_published='1' and to_article_type = ${articletype.newswire}", "date desc, webdb_create desc", 40, 0, - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityListProducerNode("startspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityListProducerNode("startspecial", model, "content", "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 1, 0, - new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityListProducerNode("features", model, "content", "is_published='1' and to_article_type = ${articletype.feature}", "date desc, webdb_create desc", 10, 0, - new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(), + new EntityListProducerNode("breaking", model, "breakingNews", "", "webdb_create desc", 5, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/bolivia.indymedia.org/startpage.template", @@ -91,9 +90,9 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer { try { aProducerNode.addSubNode( - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/bolivia.indymedia.org/navigation.template", @@ -118,11 +117,11 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer { try { // topic pages: topicArchiveNode = - new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityBatchingProducerNode( "articles", "batch", model, "content", "is_published='1' and to_article_type = ${articletype.newswire} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date asc, webdb_create asc", 20, 10, 0, - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/bolivia.indymedia.org/topic.template", @@ -131,9 +130,9 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer { ) ) ), - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/bolivia.indymedia.org/topicnavigation.template", @@ -147,8 +146,8 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer { topicArchiveNode.addVerb("all", -1); aProducerNode.addSubNode( - new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "", - new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityEnumeratingProducerNode( "topic", model, "topic","", "", + new EntityListProducerNode("topicspecial", model, "content", "is_published='1' and to_article_type = ${articletype.topicspecial} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 1, 0, topicArchiveNode ) @@ -156,16 +155,16 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer { ); aProducerNode.addSubNode( - new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "", - new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityEnumeratingProducerNode( "topic", model, "topic","", "", + new EntityListProducerNode("topicspecial", model, "content", "is_published='1' and to_article_type = ${articletype.topicspecial} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 1, 0, - new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityListProducerNode("newswire", model, "content", "is_published='1' and to_article_type = ${articletype.newswire} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date desc, webdb_create desc", 40, 0, - new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityListProducerNode("features", model, "content", "is_published='1' and to_article_type = ${articletype.feature} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date desc, webdb_create desc", 10, 0, - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/bolivia.indymedia.org/topicstartpage.template", @@ -195,11 +194,11 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer { // newswire archive: archiveNode = - new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityBatchingProducerNode( "articles", "batch", model, "content", "is_published='1' and to_article_type = ${articletype.newswire}", "date asc, webdb_create asc", 20, 10, 0, - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/bolivia.indymedia.org/newswire.template", @@ -208,9 +207,9 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer { ) ) ), - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/bolivia.indymedia.org/newswirenavigation.template", @@ -227,11 +226,11 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer { // feature archive: archiveNode = - new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityBatchingProducerNode( "articles", "batch", model, "content", "is_published='1' and to_article_type in (${articletype.feature}, ${articletype.startspecial})", "date asc, webdb_create asc", 20, 10, 0, - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/bolivia.indymedia.org/feature.template", @@ -240,9 +239,9 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer { ) ) ), - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/bolivia.indymedia.org/featurenavigation.template", diff --git a/source/mirlocal/euskalherria.indymedia.org/EHLocalizer.java b/source/mirlocal/euskalherria.indymedia.org/EHLocalizer.java index c8de5315..e19d8c11 100755 --- a/source/mirlocal/euskalherria.indymedia.org/EHLocalizer.java +++ b/source/mirlocal/euskalherria.indymedia.org/EHLocalizer.java @@ -14,8 +14,8 @@ public class EHLocalizer extends MirBasicLocalizer { return new EHOpenPostingLocalizer(); } - public MirProducerToolLocalizer producerTool() { - return new MirBasicProducerToolLocalizer(); + public MirProducerAssistantLocalizer producerAssistant() { + return new MirBasicProducerAssistantLocalizer(); } } \ No newline at end of file diff --git a/source/mirlocal/euskalherria.indymedia.org/EHProducerLocalizer.java b/source/mirlocal/euskalherria.indymedia.org/EHProducerLocalizer.java index 7839fdfa..f4e53e85 100755 --- a/source/mirlocal/euskalherria.indymedia.org/EHProducerLocalizer.java +++ b/source/mirlocal/euskalherria.indymedia.org/EHProducerLocalizer.java @@ -8,7 +8,6 @@ import mircoders.localizer.*; import mircoders.localizer.basic.*; import mircoders.producer.*; import mircoders.storage.*; -import mircoders.entity.adapter.*; public class EHProducerLocalizer extends MirBasicProducerLocalizer { @@ -18,9 +17,9 @@ public class EHProducerLocalizer extends MirBasicProducerLocalizer { try { contentNode = - new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityEnumeratingProducerNode( "content", model, "content", new CompositeProducerNode( new ProducerNode[] { - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new CompositeProducerNode( new ProducerNode[] { new GeneratingProducerNode( @@ -53,17 +52,17 @@ public class EHProducerLocalizer extends MirBasicProducerLocalizer { aProducerNode.clear(); try { aProducerNode.addSubNode( - new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityListProducerNode("newswire", model, "content", "is_published='1' and to_article_type = ${articletype.newswire}", "date desc, webdb_create desc", 40, 0, - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", - new EntityListProducerNode("startspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityListProducerNode("startspecial", model, "content", "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 1, 0, - new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityListProducerNode("features", model, "content", "is_published='1' and to_article_type = ${articletype.feature}", "date desc, webdb_create desc", 10, 0, - new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(), + new EntityListProducerNode("breaking", model, "breakingNews", "", "webdb_create desc", 5, 0, new GeneratingProducerNode( "/producer/euskalherria.indymedia.org/startpage.template", @@ -88,9 +87,9 @@ public class EHProducerLocalizer extends MirBasicProducerLocalizer { try { aProducerNode.addSubNode( - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/euskalherria.indymedia.org/navigation.template", @@ -113,11 +112,11 @@ public class EHProducerLocalizer extends MirBasicProducerLocalizer { try { topicPageNode = - new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityBatchingProducerNode( "articles", "batch", model, "content", "is_published='1' and to_article_type = ${articletype.newswire} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date asc, webdb_create asc", 20, 5, 0, - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/euskalherria.indymedia.org/topic.template", @@ -126,9 +125,9 @@ public class EHProducerLocalizer extends MirBasicProducerLocalizer { ) ) ), - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/euskalherria.indymedia.org/topicnavigation.template", @@ -142,10 +141,10 @@ public class EHProducerLocalizer extends MirBasicProducerLocalizer { topicPageNode.addVerb("new", 3); aProducerNode.addSubNode( - new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "", - new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityEnumeratingProducerNode( "topic", model, "topic","", "", + new EntityListProducerNode("topicspecial", model, "content", "is_published='1' and to_article_type = ${articletype.topicspecial} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 1, 0, - new EntityListProducerNode("topicfeatures", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityListProducerNode("topicfeatures", model, "content", "is_published='1' and to_article_type = ${articletype.feature} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 10, 0, topicPageNode ) diff --git a/source/mirlocal/indymedia.nl/IndyNLLocalizer.java b/source/mirlocal/indymedia.nl/IndyNLLocalizer.java index 56286b86..b43dc781 100755 --- a/source/mirlocal/indymedia.nl/IndyNLLocalizer.java +++ b/source/mirlocal/indymedia.nl/IndyNLLocalizer.java @@ -14,7 +14,7 @@ public class IndyNLLocalizer extends MirBasicLocalizer { return new IndyNLOpenPostingLocalizer(); } - public MirProducerToolLocalizer producerTool() { + public MirProducerAssistantLocalizer producerAssistant() { return new IndyNLProducerAssistantLocalizer(); } diff --git a/source/mirlocal/indymedia.nl/IndyNLProducerAssistantLocalizer.java b/source/mirlocal/indymedia.nl/IndyNLProducerAssistantLocalizer.java index 4812af5d..ec229926 100755 --- a/source/mirlocal/indymedia.nl/IndyNLProducerAssistantLocalizer.java +++ b/source/mirlocal/indymedia.nl/IndyNLProducerAssistantLocalizer.java @@ -3,7 +3,7 @@ package mircoders.localizer.basic; import java.util.*; import mircoders.localizer.basic.*; -public class IndyNLProducerAssistantLocalizer extends MirBasicProducerToolLocalizer { +public class IndyNLProducerAssistantLocalizer extends MirBasicProducerAssistantLocalizer { public void initializeGenerationValueSet(Map aValueSet) { super.initializeGenerationValueSet(aValueSet); diff --git a/source/mirlocal/indymedia.nl/IndyNLProducerLocalizer.java b/source/mirlocal/indymedia.nl/IndyNLProducerLocalizer.java index 45e29115..cb990754 100755 --- a/source/mirlocal/indymedia.nl/IndyNLProducerLocalizer.java +++ b/source/mirlocal/indymedia.nl/IndyNLProducerLocalizer.java @@ -7,7 +7,6 @@ import mircoders.localizer.*; import mircoders.localizer.basic.*; import mircoders.producer.*; import mircoders.storage.*; -import mircoders.entity.adapter.*; public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { @@ -16,13 +15,13 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { try { contentNode = - new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityEnumeratingProducerNode( "content", model, "content", new CompositeProducerNode( new ProducerNode[] { new GeneratingProducerNode( "/producer/indymedia.nl/content.template", "${config.storageRoot}/content/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.inc" ), - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new CompositeProducerNode( new ProducerNode[] { new GeneratingProducerNode( @@ -46,8 +45,8 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { contentNode = - new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "content", model, "content", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new CompositeProducerNode( new ProducerNode[] { new GeneratingProducerNode( @@ -76,12 +75,12 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { protected void setupStartPageFactory(CompositeProducerNode aProducerNode) { try { aProducerNode.addSubNode( - new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityListProducerNode("newswire", model, "content", "is_published='1' and to_article_type in (${articletype.newswire}, ${articletype.promotednewswire})", "date desc, webdb_create desc", 40, 0, - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, new CompositeProducerNode( new ProducerNode[] { - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/indymedia.nl/newswire.template", @@ -89,13 +88,13 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { ) ) ), - new EntityListProducerNode("startspecials", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityListProducerNode("startspecials", model, "content", "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 10, 0, - new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityListProducerNode("features", model, "content", "is_published='1' and to_article_type in ( ${articletype.feature}, ${articletype.promotednewswire})", "date desc, webdb_create desc", 20, 0, - new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(), + new EntityListProducerNode("breaking", model, "breakingNews", "", "webdb_create desc", 5, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "", + new EntityEnumeratingProducerNode( "language", model, "language", "code='nl'", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new AssignmentProducerNode( "staticinclude", "1", new EvaluatedAssignmentProducerNode( "topinclude", "/producer/indymedia.nl/top.template", @@ -129,11 +128,11 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { try { topicPageNode = - new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityBatchingProducerNode( "articles", "batch", model, "content", "is_published='1' and to_article_type in (${articletype.newswire}, ${articletype.promotednewswire}) and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date asc, webdb_create asc", 6, 5, 0, - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/indymedia.nl/topic.template", @@ -142,9 +141,9 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { ) ) ), - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/indymedia.nl/topicnavigation.template", @@ -158,8 +157,8 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { topicPageNode.addVerb("new", 3); aProducerNode.addSubNode( - new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "", - new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityEnumeratingProducerNode( "topic", model, "topic","", "", + new EntityListProducerNode("topicspecial", model, "content", "is_published='1' and to_article_type = ${articletype.topicspecial} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 1, 0, topicPageNode ) @@ -175,9 +174,9 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { protected void setupStaticFactory(CompositeProducerNode aProducerNode) { try { aProducerNode.addSubNode( - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new CompositeProducerNode( new ProducerNode[] { new GeneratingProducerNode( @@ -256,15 +255,15 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { try { node = - new EntityListProducerNode("startspecials", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityListProducerNode("startspecials", model, "content", "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 10, 0, - new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityListProducerNode("features", model, "content", "is_published='1' and to_article_type in ( ${articletype.feature}, ${articletype.promotednewswire})", "date desc, webdb_create desc", 20, 0, - new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(), + new EntityListProducerNode("breaking", model, "breakingNews", "", "webdb_create desc", 5, 0, - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/indymedia.nl/features.template", @@ -285,13 +284,13 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { try { node = - new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityListProducerNode("features", model, "content", "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10, 0, - new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(), + new EntityListProducerNode("breaking", model, "breakingNews", "", "webdb_create desc", 5, 0, - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/indymedia.nl/features.template", @@ -310,11 +309,12 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { try { batchingNode = - new EntityBatchingProducerNode( "comments", "batch", DatabaseComment.getInstance(), CommentAdapterDefinition.getInstance(), + new EntityBatchingProducerNode( "comments", "batch", model, "comments", + "", "id asc", 25, 15, 0, - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "", + new EntityEnumeratingProducerNode( "language", model, "language", "code='nl'", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/indymedia.nl/commentsindex.template", @@ -323,9 +323,9 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { ) ) ), - new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), + new EntityListProducerNode("languages", model, "language", "", "code", 10, 0, - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "", + new EntityEnumeratingProducerNode( "language", model, "language", "code='nl'", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", new GeneratingProducerNode( "/producer/indymedia.nl/commentsindexnavigation.template", @@ -346,7 +346,7 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { try { enumeratingNode = - new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(), + new EntityEnumeratingProducerNode( "content", model, "content", new GeneratingProducerNode( "/producer/indymedia.nl/static.template", "${config.storageRoot}/${language.code}/static/${content.edittitle}.shtml" @@ -357,7 +357,7 @@ public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer { enumeratingNode.addVerb( "new", "is_published='1' and is_produced='f' and to_article_type=${articletype.static} and to_language=${language.id} and edittitle<>'' and not edittitle is null", "" ); aFactoriesMap.put("staticarticles", new NodedProducerFactory( - new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "", + new EntityEnumeratingProducerNode( "language", model, "language", "", "", new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}", enumeratingNode ) -- 2.11.0