X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Fproducer%2FEntityBatchingProducerNode.java;fp=source%2Fmir%2Fproducer%2FEntityBatchingProducerNode.java;h=3f23bb2563e5921695ca0fdca4a4d8bc7e0739a3;hb=c9ac8fa71b679f8d967aac901bbef945c13b94c9;hp=aa0bf413081dbc7759490eea9de25a322bf3c543;hpb=d63595f89aaa4b6a524dc0b4af9e0eef888f4c6b;p=mir.git
diff --git a/source/mir/producer/EntityBatchingProducerNode.java b/source/mir/producer/EntityBatchingProducerNode.java
index aa0bf413..3f23bb25 100755
--- a/source/mir/producer/EntityBatchingProducerNode.java
+++ b/source/mir/producer/EntityBatchingProducerNode.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2001, 2002 The Mir-coders group
+ * Copyright (C) 2001-2006 The Mir-coders group
*
* This file is part of Mir.
*
@@ -19,8 +19,6 @@
*
* In addition, as a special exception, The Mir-coders gives permission to link
* the code of this program with any library licensed under the Apache Software License,
- * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
- * (or with modified versions of the above that use the same license as the above),
* and distribute linked combinations including the two. You must obey the
* GNU General Public License in all respects for all of the code used other than
* the above mentioned libraries. If you modify this file, you may extend this
@@ -29,31 +27,17 @@
*/
package mir.producer;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.ArrayList;
-
import mir.entity.adapter.EntityAdapterModel;
import mir.entity.adapter.EntityIteratorAdapter;
-import mir.log.LoggerWrapper;
import mir.util.ParameterExpander;
import mir.util.StringRoutines;
+import java.util.*;
+
/**
- *
Title: EntityBatchingProducerNode
- * Description:
- * This producer makes it possible to show articles in batches, like on archive
- * pages.
- *
- * The order by clause should lead to a result set in reverse order:
- * the first row will be the last entity in the last batch
- *
- * Copyright: Copyright (c) 2003
- * Company:
- * @author not attributable
- * @version 1.0
+ * This producer makes it possible to show articles in batches, like on archive pages.
+ * The order by clause should lead to a result set in reverse order:
+ * the first row will be the last entity in the last batch
*/
public class EntityBatchingProducerNode implements ProducerNode {
@@ -112,7 +96,7 @@ public class EntityBatchingProducerNode implements ProducerNode {
((NodedProducer) producerValue).getIsAborted());
}
- public void produce(Map aValueMap, String aVerb, LoggerWrapper aLogger) throws ProducerFailure {
+ public void produce(ProductionContext aProducerContext) throws ProducerExc, ProducerFailure {
int nrEntities;
int nrBatchesAfterFirst;
int nrEntitiesInFirstBatch;
@@ -131,20 +115,20 @@ public class EntityBatchingProducerNode implements ProducerNode {
int minNrEntitiesInFirstBatch;
try {
- nrBatchesToProcess = ParameterExpander.evaluateIntegerExpressionWithDefault( aValueMap, nrBatchesToProcessExpression, -1 );
+ nrBatchesToProcess = ParameterExpander.evaluateIntegerExpressionWithDefault(aProducerContext.getValueSet(), nrBatchesToProcessExpression, -1);
- expandedWhereClause = ParameterExpander.expandExpression( aValueMap, whereClause );
- expandedOrderByClause = ParameterExpander.expandExpression( aValueMap, orderByClause );
+ expandedWhereClause = ParameterExpander.expandExpression( aProducerContext.getValueSet(), whereClause );
+ expandedOrderByClause = ParameterExpander.expandExpression( aProducerContext.getValueSet(), orderByClause );
- nrEntitiesToSkip = ParameterExpander.evaluateIntegerExpression( aValueMap, nrEntitiesToSkipExpression);
- nrEntitiesPerBatch = ParameterExpander.evaluateIntegerExpression( aValueMap, nrEntitiesPerBatchExpression);
- minNrEntitiesInFirstBatch = ParameterExpander.evaluateIntegerExpression( aValueMap, minNrEntitiesInFirstBatchExpression);
- List extraTableList = StringRoutines.splitString(ParameterExpander.expandExpression( aValueMap, extraTables).trim(), ",");
+ nrEntitiesToSkip = ParameterExpander.evaluateIntegerExpression( aProducerContext.getValueSet(), nrEntitiesToSkipExpression);
+ nrEntitiesPerBatch = ParameterExpander.evaluateIntegerExpression( aProducerContext.getValueSet(), nrEntitiesPerBatchExpression);
+ minNrEntitiesInFirstBatch = ParameterExpander.evaluateIntegerExpression( aProducerContext.getValueSet(), minNrEntitiesInFirstBatchExpression);
+ List extraTableList = StringRoutines.splitString(ParameterExpander.expandExpression( aProducerContext.getValueSet(), extraTables).trim(), ",");
batchesData = new ArrayList();
batchLocations = new ArrayList();
- nrEntities = model.getMappingForName(definition).getStorage().getSize(
+ nrEntities = model.getMappingForName(definition).getDatabase().getSize(
mainTablePrefix, extraTableList, expandedWhereClause)-nrEntitiesToSkip;
nrEntitiesInFirstBatch = nrEntities % nrEntitiesPerBatch;
while (nrEntitiesInFirstBatch=nrEntitiesPerBatch)
@@ -168,14 +152,14 @@ public class EntityBatchingProducerNode implements ProducerNode {
}
batchData = new HashMap();
- ParameterExpander.setValueForKey(aValueMap, batchInfoKey, batchData);
+ ParameterExpander.setValueForKey(aProducerContext.getValueSet(), batchInfoKey, batchData);
batchData.put("all", batchesData);
batchData.put("first", batchesData.get(0));
batchData.put("last", batchesData.get(batchesData.size()-1));
batchData.put("count", new Integer(batchesData.size()));
- if (batchListSubNode!=null && (!isAborted(aValueMap))) {
- batchListSubNode.produce(aValueMap, aVerb, aLogger);
+ if (batchListSubNode!=null && (!isAborted(aProducerContext.getValueSet()))) {
+ batchListSubNode.produce(aProducerContext);
}
if (nrBatchesToProcess<0 || nrBatchesToProcess>nrBatchesAfterFirst+1) {
@@ -183,7 +167,7 @@ public class EntityBatchingProducerNode implements ProducerNode {
}
if (batchSubNode!=null) {
- for (i=0; i