import java.io.*;
import org.apache.struts.util.MessageResources;
import mir.util.*;
+import mir.misc.*;
public class ResourceBundleProducerNode extends ProducerNodeDecorator {
private String key;
private String bundleIdentifier;
+ private String languageIdentifier;
public ResourceBundleProducerNode(String aKey, String aBundleIdentifier, ProducerNode aSubNode) {
super(aSubNode);
key = aKey;
}
+ public ResourceBundleProducerNode(String aKey, String aBundleIdentifier, String aLanguageIdentifier, ProducerNode aSubNode) {
+ super(aSubNode);
+
+ bundleIdentifier = aBundleIdentifier;
+ languageIdentifier = aLanguageIdentifier;
+ key = aKey;
+ }
+
public void produce(Map aValueMap, String aVerb, PrintWriter aLogger) throws ProducerFailure {
+ Object messages;
+
try {
- aValueMap.put(
- key,
+ if (languageIdentifier!=null) {
+ messages =
+ new MessageMethodModel(
+ new Locale(ParameterExpander.expandExpression( aValueMap, languageIdentifier ), null ),
+ MessageResources.getMessageResources(ParameterExpander.expandExpression( aValueMap, bundleIdentifier ))
+ );
+ }
+ else {
+ messages =
MessageResources.getMessageResources(
- ParameterExpander.expandExpression( aValueMap, bundleIdentifier ))
+ ParameterExpander.expandExpression( aValueMap, bundleIdentifier ));
+ }
+ aValueMap.put(
+ key, messages
);
super.produce(aValueMap, aVerb, aLogger);