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