svn commit: r1339227 - /ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/FlexibleMessage.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1339227 - /ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/FlexibleMessage.java

adrianc
Author: adrianc
Date: Wed May 16 15:23:31 2012
New Revision: 1339227

URL: http://svn.apache.org/viewvc?rev=1339227&view=rev
Log:
Refactored FlexibleMessage.java.

Modified:
    ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/FlexibleMessage.java

Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/FlexibleMessage.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/FlexibleMessage.java?rev=1339227&r1=1339226&r2=1339227&view=diff
==============================================================================
--- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/FlexibleMessage.java (original)
+++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/FlexibleMessage.java Wed May 16 15:23:31 2012
@@ -20,10 +20,10 @@ package org.ofbiz.minilang.method.callop
 
 import java.io.Serializable;
 
-import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilProperties;
-import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.base.util.UtilXml;
+import org.ofbiz.base.util.string.FlexibleStringExpander;
+import org.ofbiz.minilang.MiniLangValidate;
 import org.ofbiz.minilang.method.MethodContext;
 import org.w3c.dom.Element;
 
@@ -31,53 +31,36 @@ import org.w3c.dom.Element;
  * Simple class to wrap messages that come either from a straight string or a properties file
  */
 @SuppressWarnings("serial")
-public class FlexibleMessage implements Serializable {
+public final class FlexibleMessage implements Serializable {
 
-    public static final String module = FlexibleMessage.class.getName();
-
-    boolean isProperty = false;
-    String message = null;
-    String propertyResource = null;
+    private final FlexibleStringExpander messageFse;
+    private final String propertykey;
+    private final String propertyResource;
 
     public FlexibleMessage(Element element, String defaultProperty) {
-        String resAttr = null;
-        String propAttr = null;
-        String elVal = null;
         if (element != null) {
-            resAttr = element.getAttribute("resource");
-            propAttr = element.getAttribute("property");
-            elVal = UtilXml.elementValue(element);
-        }
-        if (UtilValidate.isNotEmpty(resAttr)) {
-            propertyResource = resAttr;
-            message = propAttr;
-            isProperty = true;
-        } else if (UtilValidate.isNotEmpty(elVal)) {
-            message = elVal;
-            isProperty = false;
+            String message = UtilXml.elementValue(element);
+            if (message != null) {
+                messageFse = FlexibleStringExpander.getInstance(message);
+                propertykey = null;
+                propertyResource = null;
+            } else {
+                messageFse = null;
+                propertykey = MiniLangValidate.checkAttribute(element.getAttribute("property"), defaultProperty);
+                propertyResource = MiniLangValidate.checkAttribute(element.getAttribute("resource"), "DefaultMessages");
+            }
         } else {
-            // put in default property
+            messageFse = null;
+            propertykey = defaultProperty;
             propertyResource = "DefaultMessages";
-            message = defaultProperty;
-            isProperty = true;
         }
     }
 
     public String getMessage(ClassLoader loader, MethodContext methodContext) {
-        String message = methodContext.expandString(this.message);
-        String propertyResource = methodContext.expandString(this.propertyResource);
-        if (!isProperty && message != null) {
-            return message;
-        } else if (isProperty && propertyResource != null && message != null) {
-            String propMsg = UtilProperties.getMessage(propertyResource, message, methodContext.getEnvMap(), methodContext.getLocale());
-            if (propMsg == null) {
-                return "In Simple Map Processing property message could not be found in resource [" + propertyResource + "] with name [" + message + "]. ";
-            } else {
-                return propMsg;
-            }
+        if (messageFse != null) {
+            return messageFse.expandString(methodContext.getEnvMap());
         } else {
-            Debug.logInfo("[FlexibleMessage.getMessage] No message found, returning empty string", module);
-            return "";
+            return UtilProperties.getMessage(propertyResource, propertykey, methodContext.getEnvMap(), methodContext.getLocale());
         }
     }
 }