Author: jaz
Date: Thu Feb 15 15:38:04 2007
New Revision: 508236

URL: http://svn.apache.org/viewvc?view=rev&rev=508236
Log:
eca set operation now uses the flexible string expander to access additional 
data from the context

Modified:
    
ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaSetField.java

Modified: 
ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaSetField.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaSetField.java?view=diff&rev=508236&r1=508235&r2=508236
==============================================================================
--- 
ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaSetField.java 
(original)
+++ 
ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaSetField.java 
Thu Feb 15 15:38:04 2007
@@ -22,12 +22,11 @@
 import org.w3c.dom.Element;
 import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.string.FlexibleStringExpander;
 import org.ofbiz.entity.model.ModelUtil;
 
 import java.util.Map;
 
-import javolution.util.FastMap;
-
 /**
  * ServiceEcaSetField
  */
@@ -49,9 +48,21 @@
 
     public void eval(Map context) {
         if (fieldName != null) {
+            // try to expand the envName
+            if (UtilValidate.isEmpty(value)) {
+                if (UtilValidate.isNotEmpty(envName) && 
envName.startsWith("${")) {
+                    FlexibleStringExpander exp = new 
FlexibleStringExpander(envName);
+                    String s = exp.expandString(context);
+                    if (UtilValidate.isNotEmpty(s)) {
+                        value = s;
+                    }
+                    Debug.log("Expanded String: " + s, module);
+                }
+            }
+
             // process the context changes
             if (UtilValidate.isNotEmpty(value)) {
-                context.put(fieldName, this.format(value, context));
+                context.put(fieldName, this.format(value, context));           
 
             } else if (UtilValidate.isNotEmpty(envName) && 
context.get(envName) != null) {
                 context.put(fieldName, this.format((String) 
context.get(envName), context));
             }
@@ -59,7 +70,7 @@
     }
 
     protected Object format(String s, Map c) {
-        if (UtilValidate.isEmpty(s)) {            
+        if (UtilValidate.isEmpty(s) || UtilValidate.isEmpty(format)) {         
   
             return s;
         }
 


Reply via email to