yet another rewrite of the producers...
[mir.git] / source / mircoders / producer / NodedProducerFactory.java
1 package mircoders.producer;
2
3 import java.util.*;
4 import mir.producer.*;
5 import mircoders.global.*;
6
7 public class NodedProducerFactory implements ProducerFactory {
8   private ProducerNode rootNode;
9
10   public NodedProducerFactory(ProducerNode aRootNode) {
11     rootNode = aRootNode;
12   }
13
14   public mir.producer.Producer makeProducer(String aVerb) throws ProducerFailure {
15     Map baseValues;
16
17     baseValues = new HashMap();
18
19     MirGlobal.localizer().producerTool().initializeGenerationValueSet(baseValues);
20
21     return new NodedProducer(rootNode, aVerb, baseValues);
22   };
23
24   public Iterator verbs() {
25     Set verbSet = rootNode.buildVerbSet();
26
27     if (verbSet.isEmpty()) {
28       verbSet = new HashSet();
29
30       verbSet.add("(default)");
31     }
32
33     return verbSet.iterator();
34   };
35 }
36