svn commit: r1350354 - in /ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method: ContextAccessor.java MethodContext.java callops/CallBsh.java callops/CallService.java conditional/ValidateMethodCondition.java envops/CreateObject.java

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

svn commit: r1350354 - in /ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method: ContextAccessor.java MethodContext.java callops/CallBsh.java callops/CallService.java conditional/ValidateMethodCondition.java envops/CreateObject.java

adrianc
Author: adrianc
Date: Thu Jun 14 18:11:18 2012
New Revision: 1350354

URL: http://svn.apache.org/viewvc?rev=1350354&view=rev
Log:
Mini-language API cleanup - removed ContextAccessor.java that is no longer used, and simplified the MethodContext.java API. With this commit all script behavior has been moved to the model classes, and all script state is contained in MethodContext.java.

Removed:
    ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ContextAccessor.java
Modified:
    ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MethodContext.java
    ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallBsh.java
    ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallService.java
    ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/ValidateMethodCondition.java
    ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/CreateObject.java

Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MethodContext.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MethodContext.java?rev=1350354&r1=1350353&r2=1350354&view=diff
==============================================================================
--- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MethodContext.java (original)
+++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MethodContext.java Thu Jun 14 18:11:18 2012
@@ -18,7 +18,6 @@
  *******************************************************************************/
 package org.ofbiz.minilang.method;
 
-import java.util.Iterator;
 import java.util.Locale;
 import java.util.Map;
 import java.util.TimeZone;
@@ -35,37 +34,35 @@ import org.ofbiz.base.util.collections.F
 import org.ofbiz.base.util.string.FlexibleStringExpander;
 import org.ofbiz.entity.Delegator;
 import org.ofbiz.entity.GenericValue;
-import org.ofbiz.minilang.SimpleMethod;
 import org.ofbiz.security.Security;
 import org.ofbiz.security.authz.Authorization;
 import org.ofbiz.service.DispatchContext;
 import org.ofbiz.service.LocalDispatcher;
 
 /**
- * A single operation, does the specified operation on the given field
+ * A container for the Mini-language script engine state.
  */
-public class MethodContext implements Iterable<Map.Entry<String, Object>> {
+public final class MethodContext {
 
     public static final int EVENT = 1;
     public static final int SERVICE = 2;
 
-    protected Authorization authz;
-    protected DispatchContext ctx;
-    protected Delegator delegator;
-    protected LocalDispatcher dispatcher;
-    protected Map<String, Object> env = FastMap.newInstance();
-    protected ClassLoader loader;
-    protected Locale locale;
-    protected int methodType;
-    protected Map<String, Object> parameters;
-    protected HttpServletRequest request = null;
-    protected HttpServletResponse response = null;
-    protected Map<String, Object> results = null;
-    protected Security security;
-    protected TimeZone timeZone;
+    private Authorization authz;
+    private Delegator delegator;
+    private LocalDispatcher dispatcher;
+    private Map<String, Object> env = FastMap.newInstance();
+    private ClassLoader loader;
+    private Locale locale;
+    private int methodType;
+    private Map<String, Object> parameters;
+    private HttpServletRequest request = null;
+    private HttpServletResponse response = null;
+    private Map<String, Object> results = FastMap.newInstance();
+    private Security security;
+    private TimeZone timeZone;
     private int traceCount = 0;
     private int traceLogLevel = Debug.INFO;
-    protected GenericValue userLogin;
+    private GenericValue userLogin;
 
     public MethodContext(DispatchContext ctx, Map<String, ? extends Object> context, ClassLoader loader) {
         this.methodType = MethodContext.SERVICE;
@@ -77,7 +74,6 @@ public class MethodContext implements It
         this.delegator = ctx.getDelegator();
         this.authz = ctx.getAuthorization();
         this.security = ctx.getSecurity();
-        this.results = FastMap.newInstance();
         this.userLogin = (GenericValue) context.get("userLogin");
         if (this.loader == null) {
             try {
@@ -147,8 +143,6 @@ public class MethodContext implements It
                 if (this.userLogin == null)
                     this.userLogin = (GenericValue) this.request.getSession().getAttribute("userLogin");
             }
-        } else if (methodType == MethodContext.SERVICE) {
-            this.results = FastMap.newInstance();
         }
         if (this.loader == null) {
             try {
@@ -159,15 +153,6 @@ public class MethodContext implements It
         }
     }
 
-    public String expandString(FlexibleStringExpander originalExdr) {
-        return originalExdr.expandString(this.env);
-    }
-
-    /** Expands environment variables delimited with ${} */
-    public String expandString(String original) {
-        return FlexibleStringExpander.expandString(original, this.env);
-    }
-
     public Authorization getAuthz() {
         return this.authz;
     }
@@ -193,15 +178,11 @@ public class MethodContext implements It
      * @return The environment value if found, otherwise null.
      */
     public <T> T getEnv(String key) {
-        String ekey = this.expandString(key);
+        String ekey = FlexibleStringExpander.expandString(key, this.env);
         FlexibleMapAccessor<T> fma = FlexibleMapAccessor.getInstance(ekey);
         return this.getEnv(fma);
     }
 
-    public Iterator<Map.Entry<String, Object>> getEnvEntryIterator() {
-        return this.env.entrySet().iterator();
-    }
-
     public Map<String, Object> getEnvMap() {
         return this.env;
     }
@@ -262,10 +243,6 @@ public class MethodContext implements It
         return this.traceCount > 0;
     }
 
-    public Iterator<Map.Entry<String, Object>> iterator() {
-        return this.env.entrySet().iterator();
-    }
-
     /**
      * Calls putEnv for each entry in the Map, thus allowing for the additional flexibility in naming supported in that method.
      */
@@ -290,7 +267,7 @@ public class MethodContext implements It
      *            The value to set in the named environment location.
      */
     public <T> void putEnv(String key, T value) {
-        String ekey = this.expandString(key);
+        String ekey = FlexibleStringExpander.expandString(key, this.env);
         FlexibleMapAccessor<T> fma = FlexibleMapAccessor.getInstance(ekey);
         this.putEnv(fma, value);
     }
@@ -315,21 +292,11 @@ public class MethodContext implements It
      *            The name of the environment value to get. Can contain "." syntax elements as described above.
      */
     public <T> T removeEnv(String key) {
-        String ekey = this.expandString(key);
+        String ekey = FlexibleStringExpander.expandString(key, this.env);
         FlexibleMapAccessor<T> fma = FlexibleMapAccessor.getInstance(ekey);
         return this.removeEnv(fma);
     }
 
-    public void setErrorReturn(String errMsg, SimpleMethod simpleMethod) {
-        if (getMethodType() == MethodContext.EVENT) {
-            putEnv(simpleMethod.getEventErrorMessageName(), errMsg);
-            putEnv(simpleMethod.getEventResponseCodeName(), simpleMethod.getDefaultErrorCode());
-        } else if (getMethodType() == MethodContext.SERVICE) {
-            putEnv(simpleMethod.getServiceErrorMessageName(), errMsg);
-            putEnv(simpleMethod.getServiceResponseMessageName(), simpleMethod.getDefaultErrorCode());
-        }
-    }
-
     public void setTraceOff() {
         if (this.traceCount > 0) {
             this.traceCount--;

Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallBsh.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallBsh.java?rev=1350354&r1=1350353&r2=1350354&view=diff
==============================================================================
--- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallBsh.java (original)
+++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallBsh.java Thu Jun 14 18:11:18 2012
@@ -84,7 +84,7 @@ public final class CallBsh extends Metho
         bsh.setClassLoader(methodContext.getLoader());
         try {
             // setup environment
-            for (Map.Entry<String, Object> entry : methodContext) {
+            for (Map.Entry<String, Object> entry : methodContext.getEnvMap().entrySet()) {
                 bsh.set(entry.getKey(), entry.getValue());
             }
             // run external, from resource, first if resource specified

Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallService.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallService.java?rev=1350354&r1=1350353&r2=1350354&view=diff
==============================================================================
--- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallService.java (original)
+++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallService.java Thu Jun 14 18:11:18 2012
@@ -70,7 +70,7 @@ public final class CallService extends M
     private final List<ResultToRequest> resultToRequestList;
     private final List<ResultToResult> resultToResultList;
     private final List<ResultToSession> resultToSessionList;
-    private final String serviceName;
+    private final FlexibleStringExpander serviceNameFse;
     private final String successCode;
     private final FlexibleMessage successPrefix;
     private final FlexibleMessage successSuffix;
@@ -85,7 +85,7 @@ public final class CallService extends M
             MiniLangValidate.requiredAttributes(simpleMethod, element, "service-name");
             MiniLangValidate.childElements(simpleMethod, element, "error-prefix", "error-suffix", "success-prefix", "success-suffix", "message-prefix", "message-suffix", "default-message", "results-to-map", "result-to-field", "result-to-request", "result-to-session", "result-to-result");
         }
-        serviceName = element.getAttribute("service-name");
+        serviceNameFse = FlexibleStringExpander.getInstance(element.getAttribute("service-name"));
         inMapFma = FlexibleMapAccessor.getInstance(element.getAttribute("in-map-name"));
         includeUserLogin = !"false".equals(element.getAttribute("include-user-login"));
         breakOnError = !"false".equals(element.getAttribute("break-on-error"));
@@ -167,7 +167,7 @@ public final class CallService extends M
         if (methodContext.isTraceOn()) {
             outputTraceMessage(methodContext, "Begin call-service.");
         }
-        String serviceName = methodContext.expandString(this.serviceName);
+        String serviceName = serviceNameFse.expandString(methodContext.getEnvMap());
         String errorCode = this.errorCode;
         if (errorCode.isEmpty()) {
             errorCode = simpleMethod.getDefaultErrorCode();
@@ -370,7 +370,7 @@ public final class CallService extends M
 
     @Override
     public void gatherArtifactInfo(ArtifactInfoContext aic) {
-        aic.addServiceName(this.serviceName);
+        aic.addServiceName(this.serviceNameFse.toString());
     }
 
     @Override
@@ -381,7 +381,7 @@ public final class CallService extends M
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder("<call-service ");
-        sb.append("service-name=\"").append(this.serviceName).append("\" ");
+        sb.append("service-name=\"").append(this.serviceNameFse).append("\" ");
         if (!this.inMapFma.isEmpty()) {
             sb.append("in-map-name=\"").append(this.inMapFma).append("\" ");
         }

Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/ValidateMethodCondition.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/ValidateMethodCondition.java?rev=1350354&r1=1350353&r2=1350354&view=diff
==============================================================================
--- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/ValidateMethodCondition.java (original)
+++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/ValidateMethodCondition.java Thu Jun 14 18:11:18 2012
@@ -132,9 +132,6 @@ public final class ValidateMethodConditi
     }
 
     public void prettyPrint(StringBuilder messageBuffer, MethodContext methodContext) {
-        // allow methodContext to be null
-        String methodName = methodContext == null ? this.methodName : methodContext.expandString(this.methodName);
-        String className = methodContext == null ? this.className : methodContext.expandString(this.className);
         messageBuffer.append("validate-method[");
         messageBuffer.append(className);
         messageBuffer.append(".");

Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/CreateObject.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/CreateObject.java?rev=1350354&r1=1350353&r2=1350354&view=diff
==============================================================================
--- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/CreateObject.java (original)
+++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/CreateObject.java Thu Jun 14 18:11:18 2012
@@ -101,8 +101,8 @@ public final class CreateObject extends
                     typeClass = methodObjectDef.getTypeClass(methodContext);
                 } catch (ClassNotFoundException e) {
                     String errMsg = "ERROR: Could not complete the " + simpleMethod.getShortDescription() + " process [Parameter type not found with name " + methodObjectDef.getTypeName() + "]";
-                    Debug.logError(errMsg, module);
-                    methodContext.setErrorReturn(errMsg, simpleMethod);
+                    Debug.logWarning(e, errMsg, module);
+                    simpleMethod.addErrorMessage(methodContext, errMsg);
                     return false;
                 }
                 parameterTypes[i] = typeClass;