import mir.storage.*;
import mir.util.*;
-// abstract public int getSize(String where) throws SQLException,StorageObjectException;
-
public class EntityBatchingProducerNode implements ProducerNode {
private Map verbs;
throws SQLException,StorageObjectException
{
long startTime = System.currentTimeMillis();
- String sql = "SELECT count(*) FROM "+ theTable + " where " + where;
+ String sql = "SELECT Count(*) FROM "+ theTable;
+ if (where != null && !(where.length() == 0))
+ sql = sql + " where " + where;
Connection con = null;
Statement stmt = null;
int result = 0;
super();
addDBDateField("creationdate", "webdb_create");
- addDBDateField("changedate", "webdb_lastchange");
}
+
+ 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());
+ }
+ }
+ }
+
}
catch (Throwable t) {
logger.printError("BoliviaProducerLocalizer.setupTopicsFactory: Exception "+t.getMessage());
}
+ }
+
+ protected void setupFactories(Map aFactoriesMap ) {
+ super.setupFactories(aFactoriesMap);
+ try {
+
+ ProducerNode node = null;
+ EntityBatchingProducerNode batchingNode =
+ new EntityBatchingProducerNode( "comments", "batch", DatabaseComment.getInstance(), CommentAdapterDefinition.getInstance(),
+ "", "id desc", 25, 15, 0,
+ new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
+ "", "code", 10, 0,
+ new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
+ new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+ new GeneratingProducerNode(
+ "/producer/indymedia.nl/commentsindex.template",
+ "${config.storageRoot}/${language.code}/comments/comments${batch.current.identifier}.shtml"
+ )
+ )
+ )
+ ),
+ new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
+ "", "code", 10, 0,
+ new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
+ new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+ new GeneratingProducerNode(
+ "/producer/indymedia.nl/commentsindexnavigation.template",
+ "${config.storageRoot}/${language.code}/comments/commentsnavigation.inc"
+ )
+ )
+ )
+ )
+ );
+ batchingNode.addVerb("new", 3);
+ batchingNode.addVerb("all", -1);
+
+ aFactoriesMap.put("commentsindex", new NodedProducerFactory( batchingNode ));
+ }
+ catch (Throwable t) {
+ logger.printError("BoliviaProducerLocalizer.setupFactories: Exception "+t.getMessage());
+ }
}
}
super.setupFactories(aFactoriesMap);
ProducerNode node = null;
+ EntityBatchingProducerNode batchingNode = null;
try {
node =
catch (Throwable t) {
logger.printError("IndyNLProducerLocalizer.setupFactories Exception "+t.getMessage());
}
+
aFactoriesMap.put("featurestest", new NodedProducerFactory( node ) );
+ try {
+ batchingNode =
+ new EntityBatchingProducerNode( "comments", "batch", DatabaseComment.getInstance(), CommentAdapterDefinition.getInstance(),
+ "", "id desc", 25, 15, 0,
+ new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
+ "", "code", 10, 0,
+ new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
+ new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+ new GeneratingProducerNode(
+ "/producer/indymedia.nl/commentsindex.template",
+ "${config.storageRoot}/${language.code}/comments/comments${batch.current.identifier}.shtml"
+ )
+ )
+ )
+ ),
+ new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
+ "", "code", 10, 0,
+ new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
+ new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+ new GeneratingProducerNode(
+ "/producer/indymedia.nl/commentsindexnavigation.template",
+ "${config.storageRoot}/${language.code}/comments/commentsnavigation.inc"
+ )
+ )
+ )
+ )
+ );
+ batchingNode.addVerb("new", 3);
+ batchingNode.addVerb("all", -1);
+
+ aFactoriesMap.put("commentsindex", new NodedProducerFactory( batchingNode ));
+ }
+ catch (Throwable t) {
+ logger.printError("IndyNLProducerLocalizer.setupFactories: Exception "+t.getMessage());
+ }
+
}
}