1 package mir.producer.reader;
6 public class ProducerNodeBuilderLibrary {
7 private Map nodeBuilders;
9 public ProducerNodeBuilderLibrary() {
10 nodeBuilders = new HashMap();
13 public void registerBuilder(String aName, Class aProducerNodeBuilderClass) {
14 registerFactory(aName, new ProducerNodeBuilder.DefaultProducerNodeBuilderFactory( aProducerNodeBuilderClass ));
17 public void registerFactory(String aName, ProducerNodeBuilder.ProducerNodeBuilderFactory aFactory) {
18 nodeBuilders.put(aName, aFactory);
21 public boolean hasBuilderForName(String aName) {
22 return nodeBuilders.containsKey(aName);
25 public ProducerNodeBuilder constructBuilder(String aName) throws ProducerConfigExc {
26 if (hasBuilderForName(aName))
27 return ((ProducerNodeBuilder.ProducerNodeBuilderFactory) nodeBuilders.get(aName)).makeBuilder();
29 throw new ProducerConfigExc("ProducerNodeBuilder: no builder with name '" + aName + "' found.");