added the comment status count field
[mir.git] / source / mir / producer / ListEnumeratingProducerNode.java
index 6dc6d01..731655e 100755 (executable)
  */
 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);
     }
-  };
+  }
 }