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) {
return entity;
}
+ public EntityAdapterModel getModel() {
+ return model;
+ }
+
public Object get(Object aKey) {
Object result;
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
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) {
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());
- }
- }
}
--- /dev/null
+package mir.entity.adapter;\r
+\r
+import java.util.*;\r
+import mir.entity.*;\r
+import mir.storage.*;\r
+import mir.util.*;\r
+\r
+public class EntityAdapterModel {\r
+ private Map entityAdapterMappings;\r
+\r
+ public EntityAdapterModel() {\r
+ entityAdapterMappings = new HashMap();\r
+ }\r
+\r
+ public EntityAdapter makeEntityAdapter( String aName, Entity anEntity ) {\r
+ Mapping mapping = getMappingForName( aName );\r
+\r
+ if (mapping == null )\r
+ throw new RuntimeException( "Adapter definition with name '" + aName + "' not present in model" );\r
+\r
+ return mapping.getDefinition().makeEntityAdapter( anEntity, this );\r
+ }\r
+\r
+ public void addMapping( String aName, StorageObject aStorage, EntityAdapterDefinition aDefinition ) {\r
+ entityAdapterMappings.put( aName, new Mapping( aStorage, aDefinition ) );\r
+ }\r
+\r
+ public Mapping getMappingForName( String aName ) {\r
+ return (Mapping) entityAdapterMappings.get( aName );\r
+ }\r
+\r
+ public class Mapping {\r
+ private StorageObject storage;\r
+ private EntityAdapterDefinition definition;\r
+\r
+ public Mapping( StorageObject aStorage, EntityAdapterDefinition aDefinition ) {\r
+ storage = aStorage;\r
+ definition = aDefinition;\r
+ }\r
+\r
+ public StorageObject getStorage() {\r
+ return storage;\r
+ }\r
+\r
+ public EntityAdapterDefinition getDefinition() {\r
+ return definition;\r
+ }\r
+ }\r
+}\r
+\r
+\r
+
\ No newline at end of file
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() {
}
public Object next() {
- return definition.makeEntityAdapter((Entity) iterator.next());
+ return model.makeEntityAdapter(definitionName, (Entity) iterator.next());
}
public void remove() {
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));
- }
- }
-*/
}
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;
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);
}
public EntityBatchingProducerNode(
String aBatchDataKey,
String aBatchInfoKey,
- StorageObject aStorage,
- EntityAdapterDefinition aDefinition,
+ EntityAdapterModel aModel,
+ String aDefinition,
String aWhereClause,
String anOrderByClause,
int aNrEntitiesPerBatch,
batchDataKey = aBatchDataKey;
batchInfoKey = aBatchInfoKey;
- storage = aStorage;
+ model = aModel;
definition = aDefinition;
whereClause = aWhereClause;
orderByClause = anOrderByClause;
batchesData = new Vector();
batchLocations = new Vector();
- nrEntities = storage.getSize(expandedWhereClause)-nrEntitiesToSkip;
+ nrEntities = model.getMappingForName(definition).getStorage().getSize(expandedWhereClause)-nrEntitiesToSkip;
nrEntitiesInFirstBatch = nrEntities % nrEntitiesPerBatch;
while (nrEntitiesInFirstBatch<minNrEntitiesInFirstBatch && nrEntities-nrEntitiesInFirstBatch>=nrEntitiesPerBatch)
nrEntitiesInFirstBatch = nrEntitiesInFirstBatch + nrEntitiesPerBatch;
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())
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);
}
try {
browser = new EntityIteratorAdapter(
- storage,
ParameterExpander.expandExpression( aValueMap, verb.whereClause ),
ParameterExpander.expandExpression( aValueMap, verb.orderByClause ),
-1,
+ model,
definition );
while (browser.hasNext()) {
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;
aValueMap.put(key,
new CachingRewindableIterator(
new EntityIteratorAdapter(
- storage,
ParameterExpander.expandExpression( aValueMap, whereClause ),
ParameterExpander.expandExpression( aValueMap, orderByClause ),
20,
+ model,
definition,
limit,
skip )
+++ /dev/null
-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();
- }
-}
+++ /dev/null
-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();
- }
-}
+++ /dev/null
-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);
+++ /dev/null
-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;
- }
- }
-}
-
-
+++ /dev/null
-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();
- }
-}
+++ /dev/null
-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();
- }
-}
+++ /dev/null
-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();
- }
-}
+++ /dev/null
-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();
- }
-}
+++ /dev/null
-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();
- }
-}
+++ /dev/null
-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();
- }
-}
+++ /dev/null
-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();
- }
-}
+++ /dev/null
-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();
- }
-}
+++ /dev/null
-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();
- }
-}
+++ /dev/null
-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();
- }
-}
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"));
startTime = System.currentTimeMillis();
- aLogger.println("Producing (" + aProducerFactory + "," + aVerb + ")<br>");
+ aLogger.println("Producing (" + aProducerFactory + "," + aVerb + ")");
- if (producers == null)
- aLogger.println("??<br>");
-
- 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.");
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) {
private MirProducerLocalizer producerLocalizer;
private MirGeneratorLocalizer generatorLocalizer;
private MirOpenPostingLocalizer openPostingsLocalizer;
- private MirProducerToolLocalizer producerToolLocalizer;
+ private MirProducerAssistantLocalizer producerAssistantLocalizer;
+ private MirDataModelLocalizer dataModelLocalizer;
public MirCachingLocalizerDecorator(MirLocalizer aLocalizer) {
localizer = aLocalizer;
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
--- /dev/null
+package mircoders.localizer;\r
+\r
+import mir.entity.adapter.*;\r
+\r
+public interface MirDataModelLocalizer {\r
+ public EntityAdapterModel adapterModel() throws MirLocalizerException, MirLocalizerFailure;\r
+}
\ No newline at end of file
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
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
--- /dev/null
+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;
+}
import java.util.*;
public interface MirProducerLocalizer {
- public Map factories();
+ public Map factories() throws MirLocalizerException, MirLocalizerFailure;
}
+++ /dev/null
-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);
-}
--- /dev/null
+package mircoders.localizer.basic;\r
+\r
+import java.util.*;\r
+import mir.entity.*;\r
+import mir.entity.adapter.*;\r
+import mir.media.*;\r
+import mir.misc.*;\r
+import mir.util.*;\r
+import mircoders.storage.*;\r
+import mircoders.global.*;\r
+import mircoders.entity.*;\r
+import mircoders.localizer.*;\r
+\r
+public class MirBasicDataModelLocalizer implements MirDataModelLocalizer {\r
+ private EntityAdapterModel model;\r
+\r
+ public MirBasicDataModelLocalizer() {\r
+ }\r
+\r
+ public EntityAdapterModel adapterModel() throws MirLocalizerFailure {\r
+ if (model==null)\r
+ model = buildModel();\r
+\r
+ return model;\r
+ };\r
+\r
+ protected void constructContentAdapterDefinition(EntityAdapterDefinition anEntityAdapterDefinition) throws MirLocalizerFailure {\r
+ try {\r
+ anEntityAdapterDefinition.addDBDateField("creationdate", "webdb_create");\r
+ anEntityAdapterDefinition.addDBDateField("changedate", "webdb_lastchange");\r
+ anEntityAdapterDefinition.addMirDateField("date", "date");\r
+ anEntityAdapterDefinition.addCalculatedField("to_topics", new ContentToTopicsField());\r
+ anEntityAdapterDefinition.addCalculatedField("to_comments", new ContentToCommentsField());\r
+\r
+ anEntityAdapterDefinition.addCalculatedField("to_media_images", new ContentToMediaField( "image" ));\r
+ anEntityAdapterDefinition.addCalculatedField("to_uploaded_media", new ContentToMediaField( "uploadedMedia" ));\r
+ anEntityAdapterDefinition.addCalculatedField("to_media_audio", new ContentToMediaField( "audio" ));\r
+ anEntityAdapterDefinition.addCalculatedField("to_media_video", new ContentToMediaField( "video" ));\r
+ anEntityAdapterDefinition.addCalculatedField("to_media_other", new ContentToMediaField( "otherMedia" ));\r
+ anEntityAdapterDefinition.addCalculatedField("to_media_icon", new ContentToIconField());\r
+\r
+ anEntityAdapterDefinition.addCalculatedField("description_parsed", new FilteredField("description"));\r
+ anEntityAdapterDefinition.addCalculatedField("content_data_parsed", new FilteredField("content_data"));\r
+ }\r
+ catch (Throwable t) {\r
+ throw new MirLocalizerFailure(t.getMessage(), t);\r
+ }\r
+ }\r
+\r
+ protected void constructCommentAdapterDefinition(EntityAdapterDefinition anEntityAdapterDefinition) throws MirLocalizerFailure {\r
+ try {\r
+ anEntityAdapterDefinition.addDBDateField("creationdate", "webdb_create");\r
+ anEntityAdapterDefinition.addCalculatedField("to_content", new CommentToContentField());\r
+ }\r
+ catch (Throwable t) {\r
+ throw new MirLocalizerFailure(t.getMessage(), t);\r
+ }\r
+ }\r
+\r
+ protected EntityAdapterModel buildModel() throws MirLocalizerFailure {\r
+ EntityAdapterModel result = new EntityAdapterModel();\r
+\r
+ try {\r
+ EntityAdapterDefinition definition;\r
+\r
+ definition = new EntityAdapterDefinition();\r
+ constructContentAdapterDefinition( definition );\r
+ result.addMapping( "content", DatabaseContent.getInstance(), definition);\r
+\r
+ definition = new EntityAdapterDefinition();\r
+ constructCommentAdapterDefinition( definition );\r
+ result.addMapping( "comment", DatabaseComment.getInstance(), definition);\r
+\r
+ result.addMapping( "articleType", DatabaseArticleType.getInstance(), new EntityAdapterDefinition());\r
+ result.addMapping( "breakingNews", DatabaseBreaking.getInstance(), new EntityAdapterDefinition());\r
+ result.addMapping( "feature", DatabaseFeature.getInstance(), new EntityAdapterDefinition());\r
+ result.addMapping( "imageType", DatabaseImageType.getInstance(), new EntityAdapterDefinition());\r
+ result.addMapping( "language", DatabaseLanguage.getInstance(), new EntityAdapterDefinition());\r
+ result.addMapping( "mediaFolder", DatabaseMediafolder.getInstance(), new EntityAdapterDefinition());\r
+ result.addMapping( "mediaType", DatabaseMediaType.getInstance(), new EntityAdapterDefinition());\r
+ result.addMapping( "internalMessage", DatabaseMessages.getInstance(), new EntityAdapterDefinition());\r
+ result.addMapping( "topic", DatabaseTopics.getInstance(), new EntityAdapterDefinition());\r
+ result.addMapping( "user", DatabaseUsers.getInstance(), new EntityAdapterDefinition());\r
+ result.addMapping( "media", DatabaseMedia.getInstance(), new EntityAdapterDefinition());\r
+ result.addMapping( "uploadedMedia", DatabaseUploadedMedia.getInstance(), new EntityAdapterDefinition());\r
+ result.addMapping( "image", DatabaseImages.getInstance(), new EntityAdapterDefinition());\r
+ result.addMapping( "audio", DatabaseAudio.getInstance(), new EntityAdapterDefinition());\r
+ result.addMapping( "video", DatabaseVideo.getInstance(), new EntityAdapterDefinition());\r
+ result.addMapping( "otherMedia", DatabaseOther.getInstance(), new EntityAdapterDefinition());\r
+ }\r
+ catch (Throwable t) {\r
+ throw new MirLocalizerFailure(t.getMessage(), t);\r
+ }\r
+\r
+ return result;\r
+ }\r
+\r
+ protected class CommentToContentField implements EntityAdapterDefinition.CalculatedField {\r
+ public Object getValue(EntityAdapter anEntityAdapter) {\r
+ try {\r
+ return anEntityAdapter.getRelation(\r
+ "id="+anEntityAdapter.get("to_media"),\r
+ "id",\r
+ "content" );\r
+ }\r
+ catch (Throwable t) {\r
+ throw new RuntimeException(t.getMessage());\r
+ }\r
+ }\r
+ }\r
+ protected class FilteredField implements EntityAdapterDefinition.CalculatedField {\r
+ String fieldName;\r
+\r
+ public FilteredField(String aFieldName) {\r
+ fieldName = aFieldName;\r
+ }\r
+\r
+ public Object getValue(EntityAdapter anEntityAdapter) {\r
+ try {\r
+ if (anEntityAdapter.get("is_html").equals("0")) {\r
+ return MirGlobal.localizer().producerAssistant().filterText((String) anEntityAdapter.get(fieldName));\r
+ }\r
+ else {\r
+ return anEntityAdapter.get(fieldName);\r
+ }\r
+ }\r
+ catch (Throwable t) {\r
+ throw new RuntimeException(t.getMessage());\r
+ }\r
+ }\r
+ }\r
+\r
+ protected class ContentToCommentsField implements EntityAdapterDefinition.CalculatedField {\r
+ public Object getValue(EntityAdapter anEntityAdapter) {\r
+ try {\r
+ return anEntityAdapter.getRelation(\r
+ "to_media="+anEntityAdapter.get("id"),\r
+ "webdb_create",\r
+ "comment" );\r
+ }\r
+ catch (Throwable t) {\r
+ throw new RuntimeException(t.getMessage());\r
+ }\r
+ }\r
+ }\r
+\r
+ protected class ContentToTopicsField implements EntityAdapterDefinition.CalculatedField {\r
+ public Object getValue(EntityAdapter anEntityAdapter) {\r
+ try {\r
+ return anEntityAdapter.getRelation(\r
+ "exists (select * from content_x_topic where content_id="+anEntityAdapter.get("id")+" and topic_id=id)",\r
+ "title",\r
+ "topic" );\r
+ }\r
+ catch (Throwable t) {\r
+ throw new RuntimeException(t.getMessage());\r
+ }\r
+ }\r
+ }\r
+\r
+ protected class ContentToMediaField implements EntityAdapterDefinition.CalculatedField {\r
+ String definition;\r
+\r
+ public ContentToMediaField(String aDefinition) {\r
+ definition = aDefinition;\r
+ }\r
+\r
+ public Object getValue(EntityAdapter anEntityAdapter) {\r
+ try {\r
+ return anEntityAdapter.getRelation(\r
+ "exists (select * from content_x_media where content_id="+anEntityAdapter.get("id")+" and media_id=id)",\r
+ "title",\r
+ definition);\r
+ }\r
+ catch (Throwable t) {\r
+ throw new RuntimeException(t.getMessage());\r
+ }\r
+ }\r
+ }\r
+\r
+ protected class ContentToIconField implements EntityAdapterDefinition.CalculatedField {\r
+ public Object getValue(EntityAdapter anEntityAdapter) {\r
+ EntityAdapter media;\r
+ Entity mediaType;\r
+ RewindableIterator iterator;\r
+ Map result;\r
+ MirMedia mediaHandler;\r
+ String tinyIcon;\r
+ String iconAlt;\r
+\r
+ try {\r
+ iterator = (RewindableIterator) (anEntityAdapter.get("to_uploaded_media"));\r
+ iterator.rewind();\r
+\r
+ tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyText");\r
+ iconAlt = "Text";\r
+\r
+ if (iterator.hasNext()) {\r
+ media = (EntityAdapter) iterator.next();\r
+\r
+ mediaType = ((EntityUploadedMedia) (media.getEntity())).getMediaType();\r
+ mediaHandler = MediaHelper.getHandler( mediaType );\r
+\r
+ if (mediaHandler.isVideo()) {\r
+ tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyVideo");\r
+ iconAlt = "Video";\r
+ }\r
+ else if (mediaHandler.isAudio()) {\r
+ tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyAudio");\r
+ iconAlt = "Audio";\r
+ }\r
+ else if (mediaHandler.isImage()) {\r
+ tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyImage");\r
+ iconAlt = "Image";\r
+ }\r
+ else {\r
+ tinyIcon = mediaHandler.getTinyIcon();\r
+ iconAlt = mediaHandler.getIconAlt();\r
+ }\r
+\r
+ }\r
+ }\r
+ catch (Throwable t) {\r
+ System.out.println("ContentToIconField: exception: " +t.getMessage());\r
+ t.printStackTrace(System.out);\r
+ throw new RuntimeException(t.getMessage());\r
+ }\r
+\r
+ result = new HashMap();\r
+ result.put("tiny_icon", tinyIcon);\r
+ result.put("icon_alt", iconAlt);\r
+\r
+ return result;\r
+ }\r
+ }\r
+}
\ No newline at end of file
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
--- /dev/null
+package mircoders.localizer.basic;
+
+import java.util.*;
+import java.io.*;
+import freemarker.template.utility.*;
+import mir.misc.*;
+import mir.entity.*;
+import mircoders.module.*;
+import mircoders.storage.*;
+import mircoders.localizer.*;
+import mircoders.global.*;
+
+public class MirBasicProducerAssistantLocalizer implements MirProducerAssistantLocalizer {
+ protected static Logfile logger = Logfile.getInstance( MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Mir.Localizer.Logfile"));
+
+ public void initializeGenerationValueSet(Map aValueSet) {
+ // ML: these config settings will be included more beautifully as soon as the new config system is in place
+
+ Map configMap = new HashMap();
+ Map utilityMap = new HashMap();
+
+ configMap.put("producerDocRoot", MirGlobal.getConfigProperty("Producer.DocRoot"));
+ configMap.put("storageRoot", MirGlobal.getConfigProperty("Producer.StorageRoot"));
+ configMap.put("productionHost", MirGlobal.getConfigProperty("Producer.ProductionHost"));
+ configMap.put("openAction", MirGlobal.getConfigProperty("Producer.OpenAction"));
+ configMap.put("docRoot", MirGlobal.getConfigProperty("RootUri"));
+ configMap.put("now", StringUtil.date2readableDateTime(new GregorianCalendar()));
+ configMap.put("videoHost", MirGlobal.getConfigProperty("Producer.Video.Host"));
+ configMap.put("audioHost", MirGlobal.getConfigProperty("Producer.Audio.Host"));
+ configMap.put("imageHost", MirGlobal.getConfigProperty("Producer.Image.Host"));
+ configMap.put("imagePath", MirGlobal.getConfigProperty("Producer.Image.Path"));
+ configMap.put("mirVersion", MirGlobal.getConfigProperty("Mir.Version"));
+ configMap.put("defEncoding", MirGlobal.getConfigProperty("Mir.DefaultEncoding"));
+
+ utilityMap.put("compressWhitespace", new freemarker.template.utility.CompressWhitespace() );
+
+ aValueSet.put("config", configMap);
+ aValueSet.put("utility", utilityMap);
+
+ EntityList topicList=null;
+ EntityList entityList=null;
+ EntityList parentList=null;
+ EntityList languageList=null;
+
+ try {
+ ModuleLinksImcs linksImcsModule = new ModuleLinksImcs(DatabaseLinksImcs.getInstance());
+ ModuleTopics topicsModule = new ModuleTopics(DatabaseTopics.getInstance());
+ ModuleLanguage languageModule = new ModuleLanguage(DatabaseLanguage.getInstance());
+
+ topicList = topicsModule.getTopicsList();
+ entityList = linksImcsModule.getByWhereClause("", "sortpriority, title", -1);
+ parentList = linksImcsModule.getByWhereClause("to_parent_id=NULL", "sortpriority, title", -1);
+ languageList = languageModule.getByWhereClause("", "id", -1);
+ }
+ catch (Throwable t) {
+ logger.printError("initializeGenerationValueSet: Exception "+t.getMessage());
+ }
+
+ aValueSet.put("topics", topicList);
+ aValueSet.put("imclist", entityList);
+ aValueSet.put("parentlist", parentList);
+
+ Map articleTypeMap = new HashMap();
+ articleTypeMap.put("openposting", "0");
+ articleTypeMap.put("newswire", "1");
+ articleTypeMap.put("feature", "2");
+ articleTypeMap.put("topicspecial", "3");
+ articleTypeMap.put("startspecial", "4");
+ aValueSet.put("articletype", articleTypeMap);
+ };
+
+ public PrintWriter openWriter(String anIdentifier) throws MirLocalizerFailure {
+ File file;
+ File dir;
+
+ try {
+ file = new File( anIdentifier );
+ dir = new File(file.getParent());
+ if (dir!=null && !dir.exists()){
+ dir.mkdirs();
+ }
+
+ return new PrintWriter(
+ new OutputStreamWriter(
+ new FileOutputStream(file), MirGlobal.getConfigProperty("Mir.DefaultEncoding")
+ )
+ );
+ }
+ catch (Throwable t) {
+ throw new MirLocalizerFailure("Failure while opening a PrintWriter",t);
+ }
+ };
+
+ public void closeWriter(PrintWriter aWriter) {
+ aWriter.close();
+ };
+
+ public String filterText(String aText) {
+ return StringUtil.createHTML(
+ StringUtil.deleteForbiddenTags(aText),
+ MirGlobal.getConfigProperty("Producer.ImageRoot"),
+ MirGlobal.getConfigProperty("Producer.MailLinkName"),
+ MirGlobal.getConfigProperty("Producer.ExtLinkName"),
+ MirGlobal.getConfigProperty("Producer.IntLinkName")
+ );
+ }
+}
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);
}
+++ /dev/null
-package mircoders.localizer.basic;
-
-import java.util.*;
-import java.io.*;
-import freemarker.template.utility.*;
-import mir.misc.*;
-import mir.entity.*;
-import mircoders.module.*;
-import mircoders.storage.*;
-import mircoders.localizer.*;
-import mircoders.global.*;
-
-public class MirBasicProducerToolLocalizer implements MirProducerToolLocalizer {
- protected static Logfile logger = Logfile.getInstance( MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Mir.Localizer.Logfile"));
-
- public void initializeGenerationValueSet(Map aValueSet) {
- // ML: these config settings will be included more beautifully as soon as the new config system is in place
-
- Map configMap = new HashMap();
- Map utilityMap = new HashMap();
-
- configMap.put("producerDocRoot", MirGlobal.getConfigProperty("Producer.DocRoot"));
- configMap.put("storageRoot", MirGlobal.getConfigProperty("Producer.StorageRoot"));
- configMap.put("productionHost", MirGlobal.getConfigProperty("Producer.ProductionHost"));
- configMap.put("openAction", MirGlobal.getConfigProperty("Producer.OpenAction"));
- configMap.put("docRoot", MirGlobal.getConfigProperty("RootUri"));
- configMap.put("now", StringUtil.date2readableDateTime(new GregorianCalendar()));
- configMap.put("videoHost", MirGlobal.getConfigProperty("Producer.Video.Host"));
- configMap.put("audioHost", MirGlobal.getConfigProperty("Producer.Audio.Host"));
- configMap.put("imageHost", MirGlobal.getConfigProperty("Producer.Image.Host"));
- configMap.put("imagePath", MirGlobal.getConfigProperty("Producer.Image.Path"));
- configMap.put("mirVersion", MirGlobal.getConfigProperty("Mir.Version"));
- configMap.put("defEncoding", MirGlobal.getConfigProperty("Mir.DefaultEncoding"));
-
- utilityMap.put("compressWhitespace", new freemarker.template.utility.CompressWhitespace() );
-
- aValueSet.put("config", configMap);
- aValueSet.put("utility", utilityMap);
-
- EntityList topicList=null;
- EntityList entityList=null;
- EntityList parentList=null;
- EntityList languageList=null;
-
- try {
- ModuleLinksImcs linksImcsModule = new ModuleLinksImcs(DatabaseLinksImcs.getInstance());
- ModuleTopics topicsModule = new ModuleTopics(DatabaseTopics.getInstance());
- ModuleLanguage languageModule = new ModuleLanguage(DatabaseLanguage.getInstance());
-
- topicList = topicsModule.getTopicsList();
- entityList = linksImcsModule.getByWhereClause("", "sortpriority, title", -1);
- parentList = linksImcsModule.getByWhereClause("to_parent_id=NULL", "sortpriority, title", -1);
- languageList = languageModule.getByWhereClause("", "id", -1);
- }
- catch (Throwable t) {
- logger.printError("initializeGenerationValueSet: Exception "+t.getMessage());
- }
-
- aValueSet.put("topics", topicList);
- aValueSet.put("imclist", entityList);
- aValueSet.put("parentlist", parentList);
-
- Map articleTypeMap = new HashMap();
- articleTypeMap.put("openposting", "0");
- articleTypeMap.put("newswire", "1");
- articleTypeMap.put("feature", "2");
- articleTypeMap.put("topicspecial", "3");
- articleTypeMap.put("startspecial", "4");
- aValueSet.put("articletype", articleTypeMap);
- };
-
- public PrintWriter openWriter(String anIdentifier) throws MirLocalizerFailure {
- File file;
- File dir;
-
- try {
- file = new File( anIdentifier );
- dir = new File(file.getParent());
- if (dir!=null && !dir.exists()){
- dir.mkdirs();
- }
-
- return new PrintWriter(
- new OutputStreamWriter(
- new FileOutputStream(file), MirGlobal.getConfigProperty("Mir.DefaultEncoding")
- )
- );
- }
- catch (Throwable t) {
- throw new MirLocalizerFailure("Failure while opening a PrintWriter",t);
- }
- };
-
- public void closeWriter(PrintWriter aWriter) {
- aWriter.close();
- };
-
- public String filterText(String aText) {
- return StringUtil.createHTML(
- StringUtil.deleteForbiddenTags(aText),
- MirGlobal.getConfigProperty("Producer.ImageRoot"),
- MirGlobal.getConfigProperty("Producer.MailLinkName"),
- MirGlobal.getConfigProperty("Producer.ExtLinkName"),
- MirGlobal.getConfigProperty("Producer.IntLinkName")
- );
- }
-}
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());
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() {
return new BoliviaOpenPostingLocalizer();
}
- public MirProducerToolLocalizer producerTool() {
- return new BoliviaProducerToolLocalizer();
+ public MirProducerAssistantLocalizer producerAssistant() {
+ return new BoliviaProducerAssistantLocalizer();
}
}
\ No newline at end of file
--- /dev/null
+package mirlocal.bolivia.indymedia.org;
+
+import java.util.*;
+import java.io.*;
+import freemarker.template.utility.*;
+import mir.misc.*;
+import mir.entity.*;
+import mircoders.module.*;
+import mircoders.storage.*;
+import mircoders.localizer.*;
+import mircoders.localizer.basic.*;
+import mircoders.global.*;
+
+public class BoliviaProducerAssistantLocalizer extends MirBasicProducerAssistantLocalizer {
+ public void initializeGenerationValueSet(Map aValueSet) {
+ super.initializeGenerationValueSet(aValueSet);
+
+ ((Map) aValueSet.get("config")).put("adminUrl", MirGlobal.getConfigProperty("Producer.AdminUrl"));
+ }
+}
+
import mircoders.localizer.basic.*;
import mircoders.producer.*;
import mircoders.storage.*;
-import mircoders.entity.adapter.*;
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(
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",
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",
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",
)
)
),
- 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",
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
)
);
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",
// 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",
)
)
),
- 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",
// 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",
)
)
),
- 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",
+++ /dev/null
-package mirlocal.bolivia.indymedia.org;
-
-import java.util.*;
-import java.io.*;
-import freemarker.template.utility.*;
-import mir.misc.*;
-import mir.entity.*;
-import mircoders.module.*;
-import mircoders.storage.*;
-import mircoders.localizer.*;
-import mircoders.localizer.basic.*;
-import mircoders.global.*;
-
-public class BoliviaProducerToolLocalizer extends MirBasicProducerToolLocalizer {
- public void initializeGenerationValueSet(Map aValueSet) {
- super.initializeGenerationValueSet(aValueSet);
-
- ((Map) aValueSet.get("config")).put("adminUrl", MirGlobal.getConfigProperty("Producer.AdminUrl"));
- }
-}
-
return new EHOpenPostingLocalizer();
}
- public MirProducerToolLocalizer producerTool() {
- return new MirBasicProducerToolLocalizer();
+ public MirProducerAssistantLocalizer producerAssistant() {
+ return new MirBasicProducerAssistantLocalizer();
}
}
\ No newline at end of file
import mircoders.localizer.basic.*;
import mircoders.producer.*;
import mircoders.storage.*;
-import mircoders.entity.adapter.*;
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(
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",
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",
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",
)
)
),
- 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",
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
)
return new IndyNLOpenPostingLocalizer();
}
- public MirProducerToolLocalizer producerTool() {
+ public MirProducerAssistantLocalizer producerAssistant() {
return new IndyNLProducerAssistantLocalizer();
}
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);
import mircoders.localizer.basic.*;
import mircoders.producer.*;
import mircoders.storage.*;
-import mircoders.entity.adapter.*;
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(
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(
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",
)
)
),
- 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",
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",
)
)
),
- 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",
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
)
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(
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",
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",
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",
)
)
),
- 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",
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"
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
)