X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Fproducer%2FEntityEnumeratingProducerNode.java;h=1d352ef7bc1a3eaff02d234e639bea942e288a4d;hb=5757f37a1bc4e2dcad3054a66611b1a02fb7d8b3;hp=7bc5caaf75d6a4691155115b8de98dc90b7f642a;hpb=d569d798e661543ad2618e626c4d0f32ec6bfdaf;p=mir.git diff --git a/source/mir/producer/EntityEnumeratingProducerNode.java b/source/mir/producer/EntityEnumeratingProducerNode.java index 7bc5caaf..1d352ef7 100755 --- a/source/mir/producer/EntityEnumeratingProducerNode.java +++ b/source/mir/producer/EntityEnumeratingProducerNode.java @@ -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); } } @@ -74,8 +94,6 @@ public class EntityEnumeratingProducerNode extends ProducerNodeDecorator { } private class EntityEnumeratingProducerNodeVerb { - StorageObject database; - String whereClause; String orderByClause;