introduced AdapterEntityModel
[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     try {
18       baseValues = new HashMap();
19
20       MirGlobal.localizer().producerAssistant().initializeGenerationValueSet(baseValues);
21
22       return new NodedProducer(rootNode, aVerb, baseValues);
23     }
24     catch (Throwable t) {
25       throw new ProducerFailure(t.getMessage(), t);
26     }
27   };
28
29   public Iterator verbs() {
30     Set verbSet = rootNode.buildVerbSet();
31
32     if (verbSet.isEmpty()) {
33       verbSet = new HashSet();
34
35       verbSet.add("(default)");
36     }
37
38     return verbSet.iterator();
39   };
40 }
41