1 package mircoders.producer;
6 import mircoders.storage.*;
8 public class CompositeProducerFactory implements ProducerFactory {
9 Map factories; // verb -> Vector ( ProducerFactory )
11 public CompositeProducerFactory() {
12 factories = new HashMap();
15 private List factoriesForVerb(String aVerb) {
18 result=(List) factories.get(aVerb);
23 factories.put(aVerb, result);
29 public void addFactory(ProducerFactory aFactory) {
35 factoriesForVerb((String) i.next()).add(aFactory);
39 public mir.producer.Producer makeProducer(String aVerb) throws ProducerFailure {
40 CompositeProducer result = new CompositeProducer();
42 Iterator i=factoriesForVerb(aVerb).iterator();
45 result.addProducer(((ProducerFactory) i.next()).makeProducer(aVerb));
50 public Iterator verbs() {
51 return factories.keySet().iterator();