X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Fproducer%2FEntityEnumeratingProducerNode.java;h=7c87a16521342d4f538ecd23a8283d65189961fe;hb=b1e3d8e04d556e10831192d6dfed20e5cd871fd4;hp=ca4fef8e1da15b731e96a521660471b85383e730;hpb=63e0ee1fb8038eb6d8f0190cf38c3b3ab2727216;p=mir.git diff --git a/source/mir/producer/EntityEnumeratingProducerNode.java b/source/mir/producer/EntityEnumeratingProducerNode.java index ca4fef8e..7c87a165 100755 --- a/source/mir/producer/EntityEnumeratingProducerNode.java +++ b/source/mir/producer/EntityEnumeratingProducerNode.java @@ -29,15 +29,13 @@ */ package mir.producer; -import java.util.Iterator; -import java.util.Map; - 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.Iterator; + public class EntityEnumeratingProducerNode extends ProducerNodeDecorator { private String key; private EntityAdapterModel model; @@ -70,28 +68,31 @@ public class EntityEnumeratingProducerNode extends ProducerNodeDecorator { skip = aSkip; } - public void produce(Map aValueMap, String aVerb, LoggerWrapper aLogger) throws ProducerFailure { + public void produce(ProductionContext aProductionContext) throws ProducerFailure { Iterator browser; try { browser = new EntityIteratorAdapter( mainTablePrefix, - StringRoutines.splitString(ParameterExpander.expandExpression( aValueMap, extraTables).trim(), ","), - ParameterExpander.expandExpression( aValueMap, whereClause ), - ParameterExpander.expandExpression( aValueMap, orderByClause ), + StringRoutines.splitString(ParameterExpander.expandExpression(aProductionContext.getValueSet(), + extraTables).trim(), ","), + ParameterExpander.expandExpression(aProductionContext.getValueSet(), whereClause), + ParameterExpander.expandExpression(aProductionContext.getValueSet(), orderByClause), 100, model, definition, - ParameterExpander.evaluateIntegerExpressionWithDefault( aValueMap, limit, -1), - ParameterExpander.evaluateIntegerExpressionWithDefault( aValueMap, skip, 0)); + ParameterExpander.evaluateIntegerExpressionWithDefault(aProductionContext.getValueSet(), limit, -1), + ParameterExpander.evaluateIntegerExpressionWithDefault(aProductionContext.getValueSet(), skip, 0)); + + while (browser.hasNext() && !isAborted(aProductionContext)) { + ParameterExpander.setValueForKey(aProductionContext.getValueSet(), key, browser.next()); - while (browser.hasNext() && !isAborted(aValueMap)) { - ParameterExpander.setValueForKey( aValueMap, key, browser.next()); - super.produce(aValueMap, aVerb, aLogger); + super.produce(aProductionContext); } } catch (Throwable t) { - aLogger.error("Exception occurred inside an EntityEnumeratingProducerNode: " + t.getMessage()); + aProductionContext.getLogger().warn("Exception occurred inside an EntityEnumeratingProducerNode: " + + t.getMessage()); } - }; + } } \ No newline at end of file