X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Fproducer%2Freader%2FDefaultProducerNodeBuilders.java;h=97feb4fee77f7c20d0136d01075a19c5c37779ab;hb=5757f37a1bc4e2dcad3054a66611b1a02fb7d8b3;hp=aa145ccc1f491d5bcfcc21b19f6090343b5bcad3;hpb=e7200fa32032d22a03d5723412f5143cbdc1c6ba;p=mir.git diff --git a/source/mir/producer/reader/DefaultProducerNodeBuilders.java b/source/mir/producer/reader/DefaultProducerNodeBuilders.java index aa145ccc..97feb4fe 100755 --- a/source/mir/producer/reader/DefaultProducerNodeBuilders.java +++ b/source/mir/producer/reader/DefaultProducerNodeBuilders.java @@ -156,8 +156,8 @@ public class DefaultProducerNodeBuilders { key = (String) anAttributes.get(ENUMERATION_KEY_ATTRIBUTE); definition = (String) anAttributes.get(ENUMERATION_DEFINITION_ATTRIBUTE); - selection = (String) anAttributes.get(ENUMERATION_SELECTION_ATTRIBUTE); - order = (String) anAttributes.get(ENUMERATION_ORDER_ATTRIBUTE); + selection = (String) ReaderTool.getStringAttributeWithDefault(anAttributes, ENUMERATION_SELECTION_ATTRIBUTE, ""); + order = (String) ReaderTool.getStringAttributeWithDefault(anAttributes, ENUMERATION_ORDER_ATTRIBUTE, ""); limit = (String) anAttributes.get(ENUMERATION_LIMIT_ATTRIBUTE); skip = (String) anAttributes.get(ENUMERATION_SKIP_ATTRIBUTE); }; @@ -191,7 +191,7 @@ public class DefaultProducerNodeBuilders { private final static String LIST_SKIP_ATTRIBUTE = SKIP_ATTRIBUTE; private final static String[] LIST_REQUIRED_ATTRIBUTES = { LIST_KEY_ATTRIBUTE, LIST_DEFINITION_ATTRIBUTE }; private final static String[] LIST_OPTIONAL_ATTRIBUTES = { LIST_SELECTION_ATTRIBUTE, LIST_ORDER_ATTRIBUTE, LIST_SKIP_ATTRIBUTE, LIST_LIMIT_ATTRIBUTE}; - private final static String[] LIST_SUBNODES = {LIST_DEFAULT_SUBNODE}; + private final static String[] LIST_SUBNODES = {}; private String key; private String definition; @@ -212,14 +212,14 @@ public class DefaultProducerNodeBuilders { key = (String) anAttributes.get(LIST_KEY_ATTRIBUTE); definition = (String) anAttributes.get(LIST_DEFINITION_ATTRIBUTE); - selection = (String) anAttributes.get(LIST_SELECTION_ATTRIBUTE); - order = (String) anAttributes.get(LIST_ORDER_ATTRIBUTE); + selection = (String) ReaderTool.getStringAttributeWithDefault(anAttributes, LIST_SELECTION_ATTRIBUTE, ""); + order = (String) ReaderTool.getStringAttributeWithDefault(anAttributes, LIST_ORDER_ATTRIBUTE, ""); limit = (String) anAttributes.get(LIST_LIMIT_ATTRIBUTE); skip = (String) anAttributes.get(LIST_SKIP_ATTRIBUTE); }; public ProducerNode constructNode() { - return new EntityListProducerNode(key, model, definition, selection, order, limit, skip, getSubNode(LIST_DEFAULT_SUBNODE )); + return new EntityListProducerNode(key, model, definition, selection, order, limit, skip, null ); }; public static class factory implements ProducerNodeBuilderFactory { @@ -269,7 +269,7 @@ public class DefaultProducerNodeBuilders { private final static String RESOURCEBUNDLE_DEFAULT_SUBNODE = "default"; private final static String[] RESOURCEBUNDLE_REQUIRED_ATTRIBUTES = { RESOURCEBUNDLE_KEY_ATTRIBUTE, RESOURCEBUNDLE_BUNDLE_ATTRIBUTE }; private final static String[] RESOURCEBUNDLE_OPTIONAL_ATTRIBUTES = { RESOURCEBUNDLE_LANGUAGE_ATTRIBUTE}; - private final static String[] RESOURCEBUNDLE_SUBNODES = {RESOURCEBUNDLE_DEFAULT_SUBNODE}; + private final static String[] RESOURCEBUNDLE_SUBNODES = {}; private String key; private String bundle; @@ -288,7 +288,7 @@ public class DefaultProducerNodeBuilders { }; public ProducerNode constructNode() { - return new ResourceBundleProducerNode(key, bundle, language, getSubNode(RESOURCEBUNDLE_DEFAULT_SUBNODE )); + return new ResourceBundleProducerNode(key, bundle, language, null ); }; } @@ -434,10 +434,12 @@ public class DefaultProducerNodeBuilders { private final static String BATCHER_MINBATCHSIZE_ATTRIBUTE = "minbatchsize"; private final static String BATCHER_SKIP_ATTRIBUTE = SKIP_ATTRIBUTE; + private final static String BATCHER_PROCESS_ATTRIBUTE = "process"; + private final static String BATCHER_BATCH_SUBNODE = "batches"; private final static String BATCHER_BATCHLIST_SUBNODE = "batchlist"; private final static String[] BATCHER_REQUIRED_ATTRIBUTES = { BATCHER_DATAKEY_ATTRIBUTE, BATCHER_INFOKEY_ATTRIBUTE, BATCHER_DEFINITION_ATTRIBUTE, BATCHER_BATCHSIZE_ATTRIBUTE }; - private final static String[] BATCHER_OPTIONAL_ATTRIBUTES = { BATCHER_SELECTION_ATTRIBUTE, BATCHER_ORDER_ATTRIBUTE, BATCHER_MINBATCHSIZE_ATTRIBUTE, BATCHER_SKIP_ATTRIBUTE }; + private final static String[] BATCHER_OPTIONAL_ATTRIBUTES = { BATCHER_SELECTION_ATTRIBUTE, BATCHER_ORDER_ATTRIBUTE, BATCHER_MINBATCHSIZE_ATTRIBUTE, BATCHER_SKIP_ATTRIBUTE, BATCHER_PROCESS_ATTRIBUTE }; private final static String[] BATCHER_SUBNODES = { BATCHER_BATCH_SUBNODE, BATCHER_BATCHLIST_SUBNODE }; // ML: batchSize, minBatchSize, skip should be expressions! @@ -448,10 +450,10 @@ public class DefaultProducerNodeBuilders { private String definition; private String selection; private String order; - private int batchSize; - private int minBatchSize; - private int skip; - + private String batchSize; + private String minBatchSize; + private String skip; + private String process; public BatchingProducerNodeBuilder(EntityAdapterModel aModel) { super(BATCHER_SUBNODES); @@ -468,9 +470,10 @@ public class DefaultProducerNodeBuilders { selection = ReaderTool.getStringAttributeWithDefault(anAttributes, BATCHER_SELECTION_ATTRIBUTE, "" ); order = ReaderTool.getStringAttributeWithDefault(anAttributes, BATCHER_ORDER_ATTRIBUTE, "" ); - batchSize = ReaderTool.getIntegerAttributeWithDefault(anAttributes, BATCHER_BATCHSIZE_ATTRIBUTE, 20 ); - minBatchSize = ReaderTool.getIntegerAttributeWithDefault(anAttributes, BATCHER_MINBATCHSIZE_ATTRIBUTE, 0 ); - skip = ReaderTool.getIntegerAttributeWithDefault(anAttributes, BATCHER_SKIP_ATTRIBUTE, 0 ); + batchSize = ReaderTool.getStringAttributeWithDefault(anAttributes, BATCHER_BATCHSIZE_ATTRIBUTE, "20" ); + minBatchSize = ReaderTool.getStringAttributeWithDefault(anAttributes, BATCHER_MINBATCHSIZE_ATTRIBUTE, "0" ); + skip = ReaderTool.getStringAttributeWithDefault(anAttributes, BATCHER_SKIP_ATTRIBUTE, "0" ); + process = ReaderTool.getStringAttributeWithDefault(anAttributes, BATCHER_PROCESS_ATTRIBUTE, "-1" ); }; public ProducerNode constructNode() { @@ -484,6 +487,7 @@ public class DefaultProducerNodeBuilders { batchSize, minBatchSize, skip, + process, getSubNode( BATCHER_BATCH_SUBNODE ), getSubNode( BATCHER_BATCHLIST_SUBNODE ) ); @@ -537,6 +541,34 @@ public class DefaultProducerNodeBuilders { //////////////////////////////////////////////////////////////////////////////// + public static class ScriptedProducerParameterNodeBuilder implements ProducerNodeBuilder { + private String parameterName; + private String scriptedNodeName; + + public ScriptedProducerParameterNodeBuilder(String aScriptedNodeName, String aParameterName) { + parameterName = aParameterName; + scriptedNodeName = aScriptedNodeName; + } + + public void setSubNode(String aName, ProducerNode aNode) { + }; + + public Set getAvailableSubNodes() { + return new HashSet(); + }; + + public void setAttributes(Map anAttributes) throws ProducerConfigExc { + if (!anAttributes.isEmpty()) + throw new ProducerConfigExc("No parameters allowed here"); + }; + + public ProducerNode constructNode() { + return new ScriptedProducerNodeDefinition.NodeParameterProducerNode(scriptedNodeName, parameterName); + }; + } + +//////////////////////////////////////////////////////////////////////////////// + public static class ScriptedProducerNodeBuilder implements ProducerNodeBuilder { private ScriptedProducerNodeDefinition definition; private Map nodeParameterValues;