bugfixes mainly...
[mir.git] / source / mir / producer / EntityEnumeratingProducerNode.java
index e0c4642..1d352ef 100755 (executable)
@@ -11,23 +11,42 @@ public class EntityEnumeratingProducerNode extends ProducerNodeDecorator {
   private Map verbs;
   private EntityEnumeratingProducerNodeVerb defaultVerb;
   private String key;
-  private EntityAdapterDefinition definition;
-  private StorageObject storage;
-
-  public EntityEnumeratingProducerNode(String aKey, StorageObject aStorage, EntityAdapterDefinition aDefinition, ProducerNode aSubNode) {
+  private EntityAdapterModel model;
+  private String definition;
+  private String skip;
+  private String limit;
+
+  public EntityEnumeratingProducerNode(
+                String aKey,
+                EntityAdapterModel aModel, String aDefinition,
+                ProducerNode aSubNode) {
     super(aSubNode);
 
     defaultVerb = null;
     verbs = new HashMap();
-    storage = aStorage;
+    model = aModel;
     definition = aDefinition;
     key = aKey;
   }
 
-  public EntityEnumeratingProducerNode(String aKey, StorageObject aStorage, EntityAdapterDefinition aDefinition,
-          String aDefaultWhereClause, String aDefaultOrderByClause, ProducerNode aSubNode) {
-    this(aKey, aStorage, aDefinition, aSubNode);
+  public EntityEnumeratingProducerNode(
+              String aKey,
+              EntityAdapterModel aModel, String aDefinition,
+              String aDefaultWhereClause, String aDefaultOrderByClause,
+              ProducerNode aSubNode) {
+    this(aKey, aModel, aDefinition, aDefaultWhereClause, aDefaultOrderByClause, "", "", aSubNode);
+  }
+
+  public EntityEnumeratingProducerNode(
+              String aKey,
+              EntityAdapterModel aModel, String aDefinition,
+              String aDefaultWhereClause, String aDefaultOrderByClause,
+              String aLimit, String aSkip,
+              ProducerNode aSubNode) {
+    this(aKey, aModel, aDefinition, aSubNode);
 
+    limit= aLimit;
+    skip = aSkip;
     defaultVerb = new EntityEnumeratingProducerNodeVerb(aDefaultWhereClause, aDefaultOrderByClause);
   }
 
@@ -43,15 +62,16 @@ public class EntityEnumeratingProducerNode extends ProducerNodeDecorator {
 
     try {
       browser = new EntityIteratorAdapter(
-          storage,
           ParameterExpander.expandExpression( aValueMap, verb.whereClause ),
           ParameterExpander.expandExpression( aValueMap, verb.orderByClause ),
-          -1,
-          definition );
+          100,
+          model,
+          definition,
+          ParameterExpander.evaluateIntegerExpressionWithDefault( aValueMap, limit, -1),
+          ParameterExpander.evaluateIntegerExpressionWithDefault( aValueMap, skip, 0));
 
       while (browser.hasNext()) {
-        aLogger.println( verb.whereClause + ": next... ");
-        aValueMap.put(key, browser.next());
+        ParameterExpander.setValueForKey( aValueMap, key, browser.next());
         super.produce(aValueMap, aVerb, aLogger);
       }
     }