X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Fproducer%2FListEnumeratingProducerNode.java;h=731655e2ab0b852272c750db3d742aec31310a22;hb=6b6b6215ebe066b81f1fa6b0c71a532ca7b4fc3f;hp=0a5941663dcd549e58e236ef9481a00d9682b76f;hpb=e44404fac09c8da04b5ef7874160cb91f8fc98a9;p=mir.git diff --git a/source/mir/producer/ListEnumeratingProducerNode.java b/source/mir/producer/ListEnumeratingProducerNode.java index 0a594166..731655e2 100755 --- a/source/mir/producer/ListEnumeratingProducerNode.java +++ b/source/mir/producer/ListEnumeratingProducerNode.java @@ -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); } } }