merge of localization branch into HEAD. mh and zap
[mir.git] / source / mir / producer / reader / ProducerNodeBuilder.java
1 package mir.producer.reader;
2
3 import java.util.*;
4 import mir.producer.*;
5
6 public interface ProducerNodeBuilder  {
7   public void setAttributes(Map anAttributes) throws ProducerConfigExc;
8   public void setSubNode(String aName, ProducerNode aNode) throws ProducerConfigExc;
9   public Set getAvailableSubNodes() throws ProducerConfigExc;
10   public ProducerNode constructNode() throws ProducerConfigExc;
11
12   public interface ProducerNodeBuilderFactory {
13     public ProducerNodeBuilder makeBuilder() throws ProducerConfigExc;
14   }
15
16   public class DefaultProducerNodeBuilderFactory implements ProducerNodeBuilderFactory {
17     private Class producerNodeBuilderClass;
18
19     public DefaultProducerNodeBuilderFactory(Class aProducerNodeBuilderClass) {
20       producerNodeBuilderClass = aProducerNodeBuilderClass;
21     }
22
23     public ProducerNodeBuilder makeBuilder() throws ProducerConfigExc{
24       try {
25         return (ProducerNodeBuilder) producerNodeBuilderClass.newInstance();
26       }
27       catch (Throwable t) {
28         throw new ProducerConfigFailure(t);
29       }
30     }
31   }
32 }
33
34