X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Fproducer%2Freader%2FScriptedProducerFactory.java;h=483754f0ff56b74d012ae8e31fc38dc0721ce34d;hb=5b2d2279e1d26546a38c5cd3ba3e4f72192e351b;hp=9e328d51d2c734532709a9842ab2d45df0cc30ff;hpb=390ff7dfed8d5fe22fc370ec05e73ee5d25eeaad;p=mir.git diff --git a/source/mir/producer/reader/ScriptedProducerFactory.java b/source/mir/producer/reader/ScriptedProducerFactory.java index 9e328d51..483754f0 100755 --- a/source/mir/producer/reader/ScriptedProducerFactory.java +++ b/source/mir/producer/reader/ScriptedProducerFactory.java @@ -35,31 +35,39 @@ import java.util.*; import mir.producer.*; public class ScriptedProducerFactory implements ProducerFactory { - private Map verbs; + private List verbs; + private Map verbNodes; private ProducerNode body; private String defaultVerb; + private String name; - public ScriptedProducerFactory(Map aVerbs, ProducerNode aBody, String aDefaultVerb) { + public ScriptedProducerFactory(String aName, List aVerbs, Map aVerbNodes, ProducerNode aBody, String aDefaultVerb) { verbs = aVerbs; + verbNodes = aVerbNodes; body = aBody; defaultVerb = aDefaultVerb; + name = aName; } - public ScriptedProducerFactory(Map aVerbs, ProducerNode aBody) { - this(aVerbs, aBody, null); + public String getName() { + return name; + } + + public ScriptedProducerFactory(String aName, List aVerbs, Map aVerbNodes, ProducerNode aBody) { + this(aName, aVerbs, aVerbNodes, aBody, null); } public Producer makeProducer(String aVerb, Map aStartingValues) throws ProducerFailure, ProducerExc { CompositeProducerNode rootNode; ProducerNode verbNode; - if (verbs.containsKey(aVerb)) { - verbNode = (ProducerNode) verbs.get(aVerb); + if (verbNodes.containsKey(aVerb)) { + verbNode = (ProducerNode) verbNodes.get(aVerb); } - else if (defaultVerb!=null && verbs.containsKey(defaultVerb)) { - verbNode = (ProducerNode) verbs.get(defaultVerb); + else if (defaultVerb!=null && verbNodes.containsKey(defaultVerb)) { + verbNode = (ProducerNode) verbNodes.get(defaultVerb); } - else throw new ProducerExc("Undefined verb: " + aVerb); + else throw new ProducerExc("Undefined verb: " + aVerb + " (and no default verb was defined)"); rootNode = new CompositeProducerNode(); rootNode.addSubNode(verbNode); @@ -69,6 +77,6 @@ public class ScriptedProducerFactory implements ProducerFactory { }; public Iterator verbs() { - return verbs.keySet().iterator(); + return verbs.iterator(); } } \ No newline at end of file