yet another rewrite of the producers...
[mir.git] / source / mir / producer / ResourceBundleProducerNode.java
1 package mir.producer;
2
3 import java.util.*;
4 import java.io.*;
5 import org.apache.struts.util.MessageResources;
6 import mir.util.*;
7
8 public class ResourceBundleProducerNode extends ProducerNodeDecorator {
9   private String key;
10   private String bundleIdentifier;
11
12   public ResourceBundleProducerNode(String aKey, String aBundleIdentifier, ProducerNode aSubNode) {
13     super(aSubNode);
14
15     bundleIdentifier = aBundleIdentifier;
16     key = aKey;
17   }
18
19   public void produce(Map aValueMap, String aVerb, PrintWriter aLogger) throws ProducerFailure {
20     try {
21       aValueMap.put(
22           key,
23           MessageResources.getMessageResources(
24               ParameterExpander.expandExpression( aValueMap, bundleIdentifier ))
25       );
26
27       super.produce(aValueMap, aVerb, aLogger);
28     }
29     catch (Throwable t) {
30       throw new ProducerFailure(t.getMessage(), t);
31     }
32   };
33
34 }