X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=source%2Fmir%2Fproducer%2Freader%2FDefaultProducerNodeBuilders.java;h=b458fed14815e49544b462a0d51f874ffe9f63a1;hb=ca12a9f67370f53d6ba44ea6ee68eb67bd168c54;hp=3cd24f97f30af34a1d33028e37377fb14b3c1039;hpb=d0335bd2d0ee79719fbb6809679e261871844964;p=mir.git diff --git a/source/mir/producer/reader/DefaultProducerNodeBuilders.java b/source/mir/producer/reader/DefaultProducerNodeBuilders.java index 3cd24f97..b458fed1 100755 --- a/source/mir/producer/reader/DefaultProducerNodeBuilders.java +++ b/source/mir/producer/reader/DefaultProducerNodeBuilders.java @@ -78,6 +78,7 @@ public class DefaultProducerNodeBuilders { aBuilderLibrary.registerBuilder("While", LoopProducerNodeBuilder.class); aBuilderLibrary.registerBuilder("RSS", RSSProducerNodeBuilder.class); + aBuilderLibrary.registerBuilder("RDFAggregate", RDFAggregatorProducerNodeBuilder.class); aBuilderLibrary.registerBuilder("FreeQuery", FreeQueryProducerNodeBuilder.class); @@ -773,6 +774,41 @@ public class DefaultProducerNodeBuilders { //////////////////////////////////////////////////////////////////////////////// + public static class RDFAggregatorProducerNodeBuilder extends AbstractProducerNodeBuilder { + private final static String RDF_AGGREGATOR_KEY_ATTRIBUTE = KEY_ATTRIBUTE; + private final static String RDF_AGGREGATOR_SOURCE_ATTRIBUTE = "source"; + private final static String RDF_AGGREGATOR_ORDER_ATTRIBUTE = ORDER_ATTRIBUTE; + private final static String RDF_AGGREGATOR_FILTER_ATTRIBUTE = "filter"; + + private final static String[] RDF_AGGREGATOR_REQUIRED_ATTRIBUTES = { RDF_AGGREGATOR_KEY_ATTRIBUTE, RDF_AGGREGATOR_SOURCE_ATTRIBUTE }; + private final static String[] RDF_AGGREGATOR_OPTIONAL_ATTRIBUTES = { RDF_AGGREGATOR_ORDER_ATTRIBUTE, RDF_AGGREGATOR_FILTER_ATTRIBUTE }; + private final static String[] RDF_AGGREGATOR_SUBNODES = { }; + + private String key; + private String source; + private String order; + private String filter; + + public RDFAggregatorProducerNodeBuilder() { + super(RDF_AGGREGATOR_SUBNODES); + } + + public void setAttributes(Map anAttributes) throws ProducerConfigExc, XMLReader.XMLReaderExc { + XMLReaderTool.checkAttributes(anAttributes, RDF_AGGREGATOR_REQUIRED_ATTRIBUTES, RDF_AGGREGATOR_OPTIONAL_ATTRIBUTES); + + key = (String) anAttributes.get( RDF_AGGREGATOR_KEY_ATTRIBUTE ); + source = (String) anAttributes.get( RDF_AGGREGATOR_SOURCE_ATTRIBUTE ); + order = XMLReaderTool.getStringAttributeWithDefault(anAttributes, RDF_AGGREGATOR_SOURCE_ATTRIBUTE, ""); + filter = XMLReaderTool.getStringAttributeWithDefault(anAttributes, RDF_AGGREGATOR_FILTER_ATTRIBUTE, ""); + }; + + public ProducerNode constructNode() { + return new RDFAggregatorProducerNode(key, source, order, filter); + }; + } + +//////////////////////////////////////////////////////////////////////////////// + public static class ScriptedProducerParameterNodeBuilder implements ProducerNodeBuilder { private String parameterName; private String scriptedNodeName;