X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Fproducer%2FListEnumeratingProducerNode.java;h=731655e2ab0b852272c750db3d742aec31310a22;hb=b1e3d8e04d556e10831192d6dfed20e5cd871fd4;hp=6dc6d01aa3e648e36cbd4543c8f1dabd35b41825;hpb=efd96b7b35414b0970616a881330b1767c2e54e3;p=mir.git diff --git a/source/mir/producer/ListEnumeratingProducerNode.java b/source/mir/producer/ListEnumeratingProducerNode.java index 6dc6d01a..731655e2 100755 --- a/source/mir/producer/ListEnumeratingProducerNode.java +++ b/source/mir/producer/ListEnumeratingProducerNode.java @@ -29,13 +29,13 @@ */ package mir.producer; -import java.util.*; +import java.util.Collection; +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.*; +import mir.util.ParameterExpander; +import mir.util.RewindableIterator; public class ListEnumeratingProducerNode extends ProducerNodeDecorator { private String key; @@ -48,32 +48,36 @@ public class ListEnumeratingProducerNode extends ProducerNodeDecorator { listExpression = aListExpression; } - public void produce(Map aValueMap, String aVerb, LoggerWrapper aLogger) throws ProducerFailure, ProducerExc { + public void produce(ProductionContext aProductionContext) throws ProducerFailure, ProducerExc { Iterator browser; Object list; try { - list = ParameterExpander.evaluateExpression(aValueMap, listExpression); + list = ParameterExpander.evaluateExpression(aProductionContext.getValueSet(), listExpression); if (list != null) { - if (list instanceof Collection) + if (list instanceof Collection) { browser = ( (Collection) list).iterator(); - else if (list instanceof Iterator) + } + else if (list instanceof Iterator) { browser = (Iterator) list; - else + } + else { throw new ProducerExc("Can't enumarate a " + list.getClass().getName()); + } if (browser instanceof RewindableIterator) { - ( (RewindableIterator) browser).rewind(); + ((RewindableIterator) browser).rewind(); } - while (browser.hasNext() && !isAborted(aValueMap)) { - ParameterExpander.setValueForKey(aValueMap, key, browser.next()); - super.produce(aValueMap, aVerb, aLogger); + while (browser.hasNext() && !isAborted(aProductionContext)) { + ParameterExpander.setValueForKey(aProductionContext.getValueSet(), key, browser.next()); + + super.produce(aProductionContext); } } } catch (Throwable t) { - aLogger.error("Exception occurred inside an ListEnumeratingProducerNode: " + t.getMessage()); + aProductionContext.getLogger().warn("Exception occurred inside an ListEnumeratingProducerNode", t); } - }; + } }