|
Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/eventops/SessionToField.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/eventops/SessionToField.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/eventops/SessionToField.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/eventops/SessionToField.java Thu Apr 19 15:09:03 2012 @@ -34,22 +34,13 @@ import org.w3c.dom.Element; * Copies a Servlet session attribute to a map field */ public class SessionToField extends MethodOperation { - public static final class SessionToFieldFactory implements Factory<SessionToField> { - public SessionToField createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new SessionToField(element, simpleMethod); - } - - public String getName() { - return "session-to-field"; - } - } public static final String module = SessionToField.class.getName(); - ContextAccessor<Map<String, Object>> mapAcsr; + String defaultVal; ContextAccessor<Object> fieldAcsr; + ContextAccessor<Map<String, Object>> mapAcsr; FlexibleServletAccessor<Object> sessionAcsr; - String defaultVal; public SessionToField(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); @@ -57,14 +48,12 @@ public class SessionToField extends Meth mapAcsr = new ContextAccessor<Map<String, Object>>(element.getAttribute("map-name")); fieldAcsr = new ContextAccessor<Object>(element.getAttribute("field"), element.getAttribute("field-name")); sessionAcsr = new FlexibleServletAccessor<Object>(element.getAttribute("session-name"), fieldAcsr.toString()); - defaultVal = element.getAttribute("default"); } @Override public boolean exec(MethodContext methodContext) { String defaultVal = methodContext.expandString(this.defaultVal); - Object fieldVal = null; // only run this if it is in an EVENT context if (methodContext.getMethodType() == MethodContext.EVENT) { @@ -73,27 +62,22 @@ public class SessionToField extends Meth Debug.logWarning("Session attribute value not found with name " + sessionAcsr, module); } } - // if fieldVal is null, or is a String and has zero length, use defaultVal if (fieldVal == null) { fieldVal = defaultVal; } else if (fieldVal instanceof String) { String strVal = (String) fieldVal; - if (strVal.length() == 0) { fieldVal = defaultVal; } } - if (!mapAcsr.isEmpty()) { Map<String, Object> fromMap = mapAcsr.get(methodContext); - if (fromMap == null) { Debug.logWarning("Map not found with name " + mapAcsr + " creating a new map", module); fromMap = FastMap.newInstance(); mapAcsr.put(methodContext, fromMap); } - fieldAcsr.put(fromMap, fieldVal, methodContext); } else { fieldAcsr.put(methodContext, fieldVal); @@ -102,13 +86,24 @@ public class SessionToField extends Meth } @Override + public String expandedString(MethodContext methodContext) { + // TODO: something more than a stub/dummy + return this.rawString(); + } + + @Override public String rawString() { // TODO: add all attributes and other info return "<session-to-field session-name=\"" + this.sessionAcsr + "\" field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\"/>"; } - @Override - public String expandedString(MethodContext methodContext) { - // TODO: something more than a stub/dummy - return this.rawString(); + + public static final class SessionToFieldFactory implements Factory<SessionToField> { + public SessionToField createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new SessionToField(element, simpleMethod); + } + + public String getName() { + return "session-to-field"; + } } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/eventops/WebappPropertyToField.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/eventops/WebappPropertyToField.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/eventops/WebappPropertyToField.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/eventops/WebappPropertyToField.java Thu Apr 19 15:09:03 2012 @@ -18,44 +18,40 @@ *******************************************************************************/ package org.ofbiz.minilang.method.eventops; -import java.net.*; -import java.util.*; -import javax.servlet.*; +import java.net.URL; +import java.util.Map; + +import javax.servlet.ServletContext; -import org.w3c.dom.*; import javolution.util.FastMap; -import org.ofbiz.base.util.*; -import org.ofbiz.minilang.*; -import org.ofbiz.minilang.method.*; + +import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.UtilProperties; +import org.ofbiz.base.util.UtilValidate; +import org.ofbiz.minilang.SimpleMethod; +import org.ofbiz.minilang.method.ContextAccessor; +import org.ofbiz.minilang.method.MethodContext; +import org.ofbiz.minilang.method.MethodOperation; +import org.w3c.dom.Element; /** * Copies a property value from a properties file in a ServletContext resource to a field */ public class WebappPropertyToField extends MethodOperation { - public static final class WebappPropertyToFieldFactory implements Factory<WebappPropertyToField> { - public WebappPropertyToField createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new WebappPropertyToField(element, simpleMethod); - } - - public String getName() { - return "webapp-property-to-field"; - } - } public static final String module = WebappPropertyToField.class.getName(); - String resource; - String property; String defaultVal; - ContextAccessor<Map<String, Object>> mapAcsr; ContextAccessor<Object> fieldAcsr; + ContextAccessor<Map<String, Object>> mapAcsr; + String property; + String resource; public WebappPropertyToField(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); resource = element.getAttribute("resource"); property = element.getAttribute("property"); defaultVal = element.getAttribute("default"); - // the schema for this element now just has the "field" attribute, though the old "field-name" and "map-name" pair is still supported fieldAcsr = new ContextAccessor<Object>(element.getAttribute("field"), element.getAttribute("field-name")); mapAcsr = new ContextAccessor<Map<String, Object>>(element.getAttribute("map-name")); @@ -66,20 +62,16 @@ public class WebappPropertyToField exten String resource = methodContext.expandString(this.resource); String property = methodContext.expandString(this.property); String defaultVal = methodContext.expandString(this.defaultVal); - String fieldVal = null; - // only run this if it is in an EVENT context if (methodContext.getMethodType() == MethodContext.EVENT) { ServletContext servletContext = (ServletContext) methodContext.getRequest().getAttribute("servletContext"); URL propsUrl = null; - try { propsUrl = servletContext.getResource(resource); } catch (java.net.MalformedURLException e) { Debug.logWarning(e, "Error finding webapp resource (properties file) not found with name " + resource, module); } - if (propsUrl == null) { Debug.logWarning("Webapp resource (properties file) not found with name " + resource, module); } else { @@ -89,19 +81,16 @@ public class WebappPropertyToField exten } } } - // if fieldVal is null, or has zero length, use defaultVal - if (UtilValidate.isEmpty(fieldVal)) fieldVal = defaultVal; - + if (UtilValidate.isEmpty(fieldVal)) + fieldVal = defaultVal; if (!mapAcsr.isEmpty()) { Map<String, Object> fromMap = mapAcsr.get(methodContext); - if (fromMap == null) { Debug.logWarning("Map not found with name " + mapAcsr + " creating a new map", module); fromMap = FastMap.newInstance(); mapAcsr.put(methodContext, fromMap); } - fieldAcsr.put(fromMap, fieldVal, methodContext); } else { fieldAcsr.put(methodContext, fieldVal); @@ -110,13 +99,24 @@ public class WebappPropertyToField exten } @Override + public String expandedString(MethodContext methodContext) { + // TODO: something more than a stub/dummy + return this.rawString(); + } + + @Override public String rawString() { // TODO: add all attributes and other info return "<webapp-property-to-field field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\"/>"; } - @Override - public String expandedString(MethodContext methodContext) { - // TODO: something more than a stub/dummy - return this.rawString(); + + public static final class WebappPropertyToFieldFactory implements Factory<WebappPropertyToField> { + public WebappPropertyToField createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new WebappPropertyToField(element, simpleMethod); + } + + public String getName() { + return "webapp-property-to-field"; + } } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/CheckId.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/CheckId.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/CheckId.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/CheckId.java Thu Apr 19 15:09:03 2012 @@ -18,38 +18,34 @@ *******************************************************************************/ package org.ofbiz.minilang.method.ifops; -import java.util.*; +import java.util.List; +import java.util.Map; -import org.w3c.dom.*; import javolution.util.FastList; -import org.ofbiz.base.util.*; -import org.ofbiz.minilang.*; -import org.ofbiz.minilang.method.*; + +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.minilang.SimpleMethod; +import org.ofbiz.minilang.method.ContextAccessor; +import org.ofbiz.minilang.method.MethodContext; +import org.ofbiz.minilang.method.MethodOperation; +import org.w3c.dom.Element; /** - * Iff the given ID field is not valid the fail-message - * or fail-property sub-elements are used to add a message to the error-list. + * If the given ID field is not valid the fail-message or fail-property sub-elements are used to add a message to the error-list. */ public class CheckId extends MethodOperation { - public static final class CheckIdFactory implements Factory<CheckId> { - public CheckId createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new CheckId(element, simpleMethod); - } - - public String getName() { - return "check-id"; - } - } public static final String module = CheckId.class.getName(); - String message = null; - String propertyResource = null; - boolean isProperty = false; - + ContextAccessor<List<Object>> errorListAcsr; ContextAccessor<Object> fieldAcsr; + boolean isProperty = false; ContextAccessor<Map<String, ? extends Object>> mapAcsr; - ContextAccessor<List<Object>> errorListAcsr; + String message = null; + String propertyResource = null; public CheckId(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); @@ -57,11 +53,9 @@ public class CheckId extends MethodOpera this.fieldAcsr = new ContextAccessor<Object>(element.getAttribute("field"), element.getAttribute("field-name")); this.mapAcsr = new ContextAccessor<Map<String, ? extends Object>>(element.getAttribute("map-name")); this.errorListAcsr = new ContextAccessor<List<Object>>(element.getAttribute("error-list-name"), "error_list"); - - //note: if no fail-message or fail-property then message will be null + // note: if no fail-message or fail-property then message will be null Element failMessage = UtilXml.firstChildElement(element, "fail-message"); Element failProperty = UtilXml.firstChildElement(element, "fail-property"); - if (failMessage != null) { this.message = failMessage.getAttribute("message"); this.isProperty = false; @@ -72,22 +66,38 @@ public class CheckId extends MethodOpera } } + public void addMessage(List<Object> messages, MethodContext methodContext, String defaultMessage, String errorDetails) { + String message = methodContext.expandString(this.message); + String propertyResource = methodContext.expandString(this.propertyResource); + if (!isProperty && message != null) { + messages.add(message + errorDetails); + } else if (isProperty && propertyResource != null && message != null) { + // String propMsg = UtilProperties.getPropertyValue(UtilURL.fromResource(propertyResource, loader), message); + String propMsg = UtilProperties.getMessage(propertyResource, message, methodContext.getEnvMap(), methodContext.getLocale()); + if (UtilValidate.isEmpty(propMsg)) { + messages.add(defaultMessage + errorDetails); + } else { + messages.add(methodContext.expandString(propMsg) + errorDetails); + } + } else { + messages.add(defaultMessage + errorDetails); + } + } + @Override public boolean exec(MethodContext methodContext) { boolean isValid = true; - List<Object> messages = errorListAcsr.get(methodContext); if (messages == null) { messages = FastList.newInstance(); errorListAcsr.put(methodContext, messages); } - Object fieldVal = null; if (!mapAcsr.isEmpty()) { Map<String, ? extends Object> fromMap = mapAcsr.get(methodContext); - if (fromMap == null) { - if (Debug.infoOn()) Debug.logInfo("Map not found with name " + mapAcsr + ", running operations", module); + if (Debug.infoOn()) + Debug.logInfo("Map not found with name " + mapAcsr + ", running operations", module); } else { fieldVal = fieldAcsr.get(fromMap, methodContext); } @@ -95,39 +105,20 @@ public class CheckId extends MethodOpera // no map name, try the env fieldVal = fieldAcsr.get(methodContext); } - String fieldStr = fieldVal.toString(); StringBuilder errorDetails = new StringBuilder(); - - //check various illegal characters, etc for ids + // check various illegal characters, etc for ids isValid = UtilValidate.isValidDatabaseId(fieldStr, errorDetails); - if (!isValid) { this.addMessage(messages, methodContext, "The ID value in the field [" + fieldAcsr + "] was not valid", ": " + errorDetails.toString()); } - return true; } - public void addMessage(List<Object> messages, MethodContext methodContext, String defaultMessage, String errorDetails) { - - String message = methodContext.expandString(this.message); - String propertyResource = methodContext.expandString(this.propertyResource); - - if (!isProperty && message != null) { - messages.add(message + errorDetails); - } else if (isProperty && propertyResource != null && message != null) { - //String propMsg = UtilProperties.getPropertyValue(UtilURL.fromResource(propertyResource, loader), message); - String propMsg = UtilProperties.getMessage(propertyResource, message, methodContext.getEnvMap(), methodContext.getLocale()); - - if (UtilValidate.isEmpty(propMsg)) { - messages.add(defaultMessage + errorDetails); - } else { - messages.add(methodContext.expandString(propMsg) + errorDetails); - } - } else { - messages.add(defaultMessage + errorDetails); - } + @Override + public String expandedString(MethodContext methodContext) { + // TODO: something more than a stub/dummy + return this.rawString(); } @Override @@ -135,9 +126,14 @@ public class CheckId extends MethodOpera // TODO: add all attributes and other info return "<check-id field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\"/>"; } - @Override - public String expandedString(MethodContext methodContext) { - // TODO: something more than a stub/dummy - return this.rawString(); + + public static final class CheckIdFactory implements Factory<CheckId> { + public CheckId createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new CheckId(element, simpleMethod); + } + + public String getName() { + return "check-id"; + } } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/CheckPermission.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/CheckPermission.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/CheckPermission.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/CheckPermission.java Thu Apr 19 15:09:03 2012 @@ -36,49 +36,34 @@ import org.ofbiz.security.authz.Authoriz import org.w3c.dom.Element; /** - * If the user does not have the specified permission the fail-message - * or fail-property sub-elements are used to add a message to the error-list. + * If the user does not have the specified permission the fail-message or fail-property sub-elements are used to add a message to the error-list. */ public class CheckPermission extends MethodOperation { - public static final class CheckPermissionFactory implements Factory<CheckPermission> { - public CheckPermission createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new CheckPermission(element, simpleMethod); - } - - public String getName() { - return "check-permission"; - } - } - - String message = null; - String propertyResource = null; - boolean isProperty = false; /** If null no partyId env-name will be checked against the userLogin.partyId and accepted as permission */ ContextAccessor<String> acceptUlPartyIdEnvNameAcsr = null; - - PermissionInfo permissionInfo; - ContextAccessor<List<Object>> errorListAcsr; List<PermissionInfo> altPermissions = null; + ContextAccessor<List<Object>> errorListAcsr; + boolean isProperty = false; + String message = null; + PermissionInfo permissionInfo; + String propertyResource = null; public CheckPermission(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); permissionInfo = new PermissionInfo(element); this.errorListAcsr = new ContextAccessor<List<Object>>(element.getAttribute("error-list-name"), "error_list"); - Element acceptUserloginPartyElement = UtilXml.firstChildElement(element, "accept-userlogin-party"); if (acceptUserloginPartyElement != null) { acceptUlPartyIdEnvNameAcsr = new ContextAccessor<String>(acceptUserloginPartyElement.getAttribute("party-id-env-name"), "partyId"); } - List<? extends Element> altPermElements = UtilXml.childElementList(element, "alt-permission"); if (!altPermElements.isEmpty()) { altPermissions = FastList.newInstance(); } - for (Element altPermElement: altPermElements) { + for (Element altPermElement : altPermElements) { altPermissions.add(new PermissionInfo(altPermElement)); } - Element failMessage = UtilXml.firstChildElement(element, "fail-message"); Element failProperty = UtilXml.firstChildElement(element, "fail-property"); if (failMessage != null) { @@ -91,16 +76,35 @@ public class CheckPermission extends Met } } + public void addMessage(List<Object> messages, MethodContext methodContext) { + String message = methodContext.expandString(this.message); + String propertyResource = methodContext.expandString(this.propertyResource); + if (!isProperty && message != null) { + messages.add(message); + // if (Debug.infoOn()) Debug.logInfo("[SimpleMapOperation.addMessage] Adding message: " + message, module); + } else if (isProperty && propertyResource != null && message != null) { + // String propMsg = UtilProperties.getPropertyValue(UtilURL.fromResource(propertyResource, loader), message); + String propMsg = UtilProperties.getMessage(propertyResource, message, methodContext.getEnvMap(), methodContext.getLocale()); + if (UtilValidate.isEmpty(propMsg)) { + messages.add("Simple Method Permission error occurred, but no message was found, sorry."); + } else { + messages.add(methodContext.expandString(propMsg)); + } + // if (Debug.infoOn()) Debug.logInfo("[SimpleMapOperation.addMessage] Adding property message: " + propMsg, module); + } else { + messages.add("Simple Method Permission error occurred, but no message was found, sorry."); + // if (Debug.infoOn()) Debug.logInfo("[SimpleMapOperation.addMessage] ERROR: No message found", module); + } + } + @Override public boolean exec(MethodContext methodContext) { boolean hasPermission = false; - List<Object> messages = errorListAcsr.get(methodContext); if (messages == null) { messages = FastList.newInstance(); errorListAcsr.put(methodContext, messages); } - // if no user is logged in, treat as if the user does not have permission: do not run subops GenericValue userLogin = methodContext.getUserLogin(); if (userLogin != null) { @@ -109,10 +113,9 @@ public class CheckPermission extends Met if (this.permissionInfo.hasPermission(methodContext, userLogin, authz, security)) { hasPermission = true; } - // if failed, check alternate permissions if (!hasPermission && altPermissions != null) { - for (PermissionInfo altPermInfo: altPermissions) { + for (PermissionInfo altPermInfo : altPermissions) { if (altPermInfo.hasPermission(methodContext, userLogin, authz, security)) { hasPermission = true; break; @@ -120,7 +123,6 @@ public class CheckPermission extends Met } } } - if (!hasPermission && acceptUlPartyIdEnvNameAcsr != null) { String acceptPartyId = acceptUlPartyIdEnvNameAcsr.get(methodContext); if (UtilValidate.isEmpty(acceptPartyId)) { @@ -134,40 +136,37 @@ public class CheckPermission extends Met hasPermission = true; } } - if (!hasPermission) { this.addMessage(messages, methodContext); } - return true; } - public void addMessage(List<Object> messages, MethodContext methodContext) { + @Override + public String expandedString(MethodContext methodContext) { + // TODO: something more than a stub/dummy + return this.rawString(); + } - String message = methodContext.expandString(this.message); - String propertyResource = methodContext.expandString(this.propertyResource); + @Override + public String rawString() { + // TODO: add all attributes and other info + return "<check-permission/>"; + } - if (!isProperty && message != null) { - messages.add(message); - // if (Debug.infoOn()) Debug.logInfo("[SimpleMapOperation.addMessage] Adding message: " + message, module); - } else if (isProperty && propertyResource != null && message != null) { - //String propMsg = UtilProperties.getPropertyValue(UtilURL.fromResource(propertyResource, loader), message); - String propMsg = UtilProperties.getMessage(propertyResource, message, methodContext.getEnvMap(), methodContext.getLocale()); - if (UtilValidate.isEmpty(propMsg)) { - messages.add("Simple Method Permission error occurred, but no message was found, sorry."); - } else { - messages.add(methodContext.expandString(propMsg)); - } - // if (Debug.infoOn()) Debug.logInfo("[SimpleMapOperation.addMessage] Adding property message: " + propMsg, module); - } else { - messages.add("Simple Method Permission error occurred, but no message was found, sorry."); - // if (Debug.infoOn()) Debug.logInfo("[SimpleMapOperation.addMessage] ERROR: No message found", module); + public static final class CheckPermissionFactory implements Factory<CheckPermission> { + public CheckPermission createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new CheckPermission(element, simpleMethod); + } + + public String getName() { + return "check-permission"; } } public static class PermissionInfo { - String permission; String action; + String permission; public PermissionInfo(Element altPermissionElement) { this.permission = altPermissionElement.getAttribute("permission"); @@ -187,15 +186,4 @@ public class CheckPermission extends Met } } } - - @Override - public String rawString() { - // TODO: add all attributes and other info - return "<check-permission/>"; - } - @Override - public String expandedString(MethodContext methodContext) { - // TODO: something more than a stub/dummy - return this.rawString(); - } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfCompare.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfCompare.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfCompare.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfCompare.java Thu Apr 19 15:09:03 2012 @@ -18,43 +18,35 @@ *******************************************************************************/ package org.ofbiz.minilang.method.ifops; -import java.util.*; +import java.util.List; +import java.util.Map; import javolution.util.FastList; -import org.w3c.dom.*; -import org.ofbiz.base.util.*; -import org.ofbiz.minilang.*; -import org.ofbiz.minilang.method.*; - -import org.ofbiz.minilang.operation.*; +import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.UtilXml; +import org.ofbiz.minilang.SimpleMethod; +import org.ofbiz.minilang.method.ContextAccessor; +import org.ofbiz.minilang.method.MethodContext; +import org.ofbiz.minilang.method.MethodOperation; +import org.ofbiz.minilang.operation.BaseCompare; +import org.w3c.dom.Element; /** * Iff the comparison between the constant and the specified field is true process sub-operations */ public class IfCompare extends MethodOperation { - public static final class IfCompareFactory implements Factory<IfCompare> { - public IfCompare createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new IfCompare(element, simpleMethod); - } - - public String getName() { - return "if-compare"; - } - } public static final String module = IfCompare.class.getName(); - protected List<MethodOperation> subOps = FastList.newInstance(); protected List<MethodOperation> elseSubOps = null; - - protected ContextAccessor<Map<String, ? extends Object>> mapAcsr; protected ContextAccessor<Object> fieldAcsr; - protected String value; - + protected String format; + protected ContextAccessor<Map<String, ? extends Object>> mapAcsr; protected String operator; + protected List<MethodOperation> subOps = FastList.newInstance(); protected String type; - protected String format; + protected String value; public IfCompare(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); @@ -66,11 +58,9 @@ public class IfCompare extends MethodOpe this.fieldAcsr = new ContextAccessor<Object>(element.getAttribute("field-name")); } this.value = element.getAttribute("value"); - this.operator = element.getAttribute("operator"); this.type = element.getAttribute("type"); this.format = element.getAttribute("format"); - SimpleMethod.readOperations(element, subOps, simpleMethod); Element elseElement = UtilXml.firstChildElement(element, "else"); if (elseElement != null) { @@ -83,17 +73,16 @@ public class IfCompare extends MethodOpe public boolean exec(MethodContext methodContext) { // if conditions fails, always return true; if a sub-op returns false // return false and stop, otherwise return true - String value = methodContext.expandString(this.value); String operator = methodContext.expandString(this.operator); String type = methodContext.expandString(this.type); String format = methodContext.expandString(this.format); - Object fieldVal = null; if (!mapAcsr.isEmpty()) { Map<String, ? extends Object> fromMap = mapAcsr.get(methodContext); if (fromMap == null) { - if (Debug.infoOn()) Debug.logInfo("Map not found with name " + mapAcsr + ", using empty string for comparison", module); + if (Debug.infoOn()) + Debug.logInfo("Map not found with name " + mapAcsr + ", using empty string for comparison", module); } else { fieldVal = fieldAcsr.get(fromMap, methodContext); } @@ -101,24 +90,20 @@ public class IfCompare extends MethodOpe // no map name, try the env fieldVal = fieldAcsr.get(methodContext); } - // always use an empty string by default if (fieldVal == null) { fieldVal = ""; } - List<Object> messages = FastList.newInstance(); Boolean resultBool = BaseCompare.doRealCompare(fieldVal, value, operator, type, format, messages, null, methodContext.getLoader(), true); if (messages.size() > 0) { messages.add(0, "Error with comparison in if-compare between field [" + mapAcsr.toString() + "." + fieldAcsr.toString() + "] with value [" + fieldVal + "] and value [" + value + "] with operator [" + operator + "] and type [" + type + "]: "); if (methodContext.getMethodType() == MethodContext.EVENT) { StringBuilder fullString = new StringBuilder(); - - for (Object message: messages) { + for (Object message : messages) { fullString.append(message); } Debug.logWarning(fullString.toString(), module); - methodContext.putEnv(simpleMethod.getEventErrorMessageName(), fullString.toString()); methodContext.putEnv(simpleMethod.getEventResponseCodeName(), simpleMethod.getDefaultErrorCode()); } else if (methodContext.getMethodType() == MethodContext.SERVICE) { @@ -127,7 +112,6 @@ public class IfCompare extends MethodOpe } return false; } - if (resultBool != null && resultBool.booleanValue()) { return SimpleMethod.runSubOps(subOps, methodContext); } else { @@ -139,10 +123,17 @@ public class IfCompare extends MethodOpe } } + @Override + public String expandedString(MethodContext methodContext) { + // TODO: something more than a stub/dummy + return this.rawString(); + } + public List<MethodOperation> getAllSubOps() { List<MethodOperation> allSubOps = FastList.newInstance(); allSubOps.addAll(this.subOps); - if (this.elseSubOps != null) allSubOps.addAll(this.elseSubOps); + if (this.elseSubOps != null) + allSubOps.addAll(this.elseSubOps); return allSubOps; } @@ -151,9 +142,14 @@ public class IfCompare extends MethodOpe // TODO: add all attributes and other info return "<if-compare field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\" value=\"" + value + "\"/>"; } - @Override - public String expandedString(MethodContext methodContext) { - // TODO: something more than a stub/dummy - return this.rawString(); + + public static final class IfCompareFactory implements Factory<IfCompare> { + public IfCompare createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new IfCompare(element, simpleMethod); + } + + public String getName() { + return "if-compare"; + } } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfCompareField.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfCompareField.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfCompareField.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfCompareField.java Thu Apr 19 15:09:03 2012 @@ -18,44 +18,36 @@ *******************************************************************************/ package org.ofbiz.minilang.method.ifops; -import java.util.*; +import java.util.List; +import java.util.Map; import javolution.util.FastList; -import org.w3c.dom.*; -import org.ofbiz.base.util.*; -import org.ofbiz.minilang.*; -import org.ofbiz.minilang.method.*; - -import org.ofbiz.minilang.operation.*; +import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.UtilXml; +import org.ofbiz.minilang.SimpleMethod; +import org.ofbiz.minilang.method.ContextAccessor; +import org.ofbiz.minilang.method.MethodContext; +import org.ofbiz.minilang.method.MethodOperation; +import org.ofbiz.minilang.operation.BaseCompare; +import org.w3c.dom.Element; /** - * Iff the comparison between the specified field and the other field is true process sub-operations + * If the comparison between the specified field and the other field is true process sub-operations */ public class IfCompareField extends MethodOperation { - public static final class IfCompareFieldFactory implements Factory<IfCompareField> { - public IfCompareField createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new IfCompareField(element, simpleMethod); - } - - public String getName() { - return "if-compare-field"; - } - } public static final String module = IfCompareField.class.getName(); - protected List<MethodOperation> subOps = FastList.newInstance(); protected List<MethodOperation> elseSubOps = null; - - protected ContextAccessor<Map<String, ? extends Object>> mapAcsr; protected ContextAccessor<Object> fieldAcsr; - protected ContextAccessor<Map<String, ? extends Object>> toMapAcsr; - protected ContextAccessor<Object> toFieldAcsr; - + protected String format; + protected ContextAccessor<Map<String, ? extends Object>> mapAcsr; protected String operator; + protected List<MethodOperation> subOps = FastList.newInstance(); + protected ContextAccessor<Object> toFieldAcsr; + protected ContextAccessor<Map<String, ? extends Object>> toMapAcsr; protected String type; - protected String format; public IfCompareField(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); @@ -66,7 +58,6 @@ public class IfCompareField extends Meth // NOTE: this is still supported, but is deprecated this.fieldAcsr = new ContextAccessor<Object>(element.getAttribute("field-name")); } - // NOTE: this is still supported, but is deprecated this.toMapAcsr = new ContextAccessor<Map<String, ? extends Object>>(element.getAttribute("to-map-name")); // set fieldAcsr to their defualt value of fieldAcsr if empty @@ -75,15 +66,12 @@ public class IfCompareField extends Meth // NOTE: this is still supported, but is deprecated this.toFieldAcsr = new ContextAccessor<Object>(element.getAttribute("to-field-name"), element.getAttribute("field-name")); } - // do NOT default the to-map-name to the map-name because that - //would make it impossible to compare from a map field to an - //environment field - + // would make it impossible to compare from a map field to an + // environment field this.operator = element.getAttribute("operator"); this.type = element.getAttribute("type"); this.format = element.getAttribute("format"); - SimpleMethod.readOperations(element, subOps, simpleMethod); Element elseElement = UtilXml.firstChildElement(element, "else"); if (elseElement != null) { @@ -96,18 +84,16 @@ public class IfCompareField extends Meth public boolean exec(MethodContext methodContext) { // if conditions fails, always return true; if a sub-op returns false // return false and stop, otherwise return true - String operator = methodContext.expandString(this.operator); String type = methodContext.expandString(this.type); String format = methodContext.expandString(this.format); - Object fieldVal1 = null; Object fieldVal2 = null; - if (!mapAcsr.isEmpty()) { Map<String, ? extends Object> fromMap = mapAcsr.get(methodContext); if (fromMap == null) { - if (Debug.infoOn()) Debug.logInfo("Map not found with name " + mapAcsr + ", using null for comparison", module); + if (Debug.infoOn()) + Debug.logInfo("Map not found with name " + mapAcsr + ", using null for comparison", module); } else { fieldVal1 = fieldAcsr.get(fromMap, methodContext); } @@ -115,11 +101,11 @@ public class IfCompareField extends Meth // no map name, try the env fieldVal1 = fieldAcsr.get(methodContext); } - if (!toMapAcsr.isEmpty()) { Map<String, ? extends Object> toMap = toMapAcsr.get(methodContext); if (toMap == null) { - if (Debug.infoOn()) Debug.logInfo("To Map not found with name " + toMapAcsr + ", using null for comparison", module); + if (Debug.infoOn()) + Debug.logInfo("To Map not found with name " + toMapAcsr + ", using null for comparison", module); } else { fieldVal2 = toFieldAcsr.get(toMap, methodContext); } @@ -127,20 +113,17 @@ public class IfCompareField extends Meth // no map name, try the env fieldVal2 = toFieldAcsr.get(methodContext); } - List<Object> messages = FastList.newInstance(); Boolean resultBool = BaseCompare.doRealCompare(fieldVal1, fieldVal2, operator, type, format, messages, null, methodContext.getLoader(), false); - if (messages.size() > 0) { - messages.add(0, "Error with comparison in if-compare-field between fields [" + mapAcsr.toString() + "." + fieldAcsr.toString() + "] with value [" + fieldVal1 + "] and [" + toMapAcsr.toString() + "." + toFieldAcsr.toString() + "] with value [" + fieldVal2 + "] with operator [" + operator + "] and type [" + type + "]: "); + messages.add(0, "Error with comparison in if-compare-field between fields [" + mapAcsr.toString() + "." + fieldAcsr.toString() + "] with value [" + fieldVal1 + "] and [" + toMapAcsr.toString() + "." + toFieldAcsr.toString() + "] with value [" + fieldVal2 + "] with operator [" + operator + + "] and type [" + type + "]: "); if (methodContext.getMethodType() == MethodContext.EVENT) { StringBuilder fullString = new StringBuilder(); - - for (Object message: messages) { + for (Object message : messages) { fullString.append(message); } Debug.logWarning(fullString.toString(), module); - methodContext.putEnv(simpleMethod.getEventErrorMessageName(), fullString.toString()); methodContext.putEnv(simpleMethod.getEventResponseCodeName(), simpleMethod.getDefaultErrorCode()); } else if (methodContext.getMethodType() == MethodContext.SERVICE) { @@ -149,7 +132,6 @@ public class IfCompareField extends Meth } return false; } - if (resultBool != null && resultBool.booleanValue()) { return SimpleMethod.runSubOps(subOps, methodContext); } else { @@ -161,10 +143,17 @@ public class IfCompareField extends Meth } } + @Override + public String expandedString(MethodContext methodContext) { + // TODO: something more than a stub/dummy + return this.rawString(); + } + public List<MethodOperation> getAllSubOps() { List<MethodOperation> allSubOps = FastList.newInstance(); allSubOps.addAll(this.subOps); - if (this.elseSubOps != null) allSubOps.addAll(this.elseSubOps); + if (this.elseSubOps != null) + allSubOps.addAll(this.elseSubOps); return allSubOps; } @@ -173,9 +162,14 @@ public class IfCompareField extends Meth // TODO: add all attributes and other info return "<if-compare-field field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\"/>"; } - @Override - public String expandedString(MethodContext methodContext) { - // TODO: something more than a stub/dummy - return this.rawString(); + + public static final class IfCompareFieldFactory implements Factory<IfCompareField> { + public IfCompareField createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new IfCompareField(element, simpleMethod); + } + + public String getName() { + return "if-compare-field"; + } } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfEmpty.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfEmpty.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfEmpty.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfEmpty.java Thu Apr 19 15:09:03 2012 @@ -18,36 +18,31 @@ *******************************************************************************/ package org.ofbiz.minilang.method.ifops; -import java.util.*; +import java.util.List; +import java.util.Map; import javolution.util.FastList; -import org.w3c.dom.*; -import org.ofbiz.base.util.*; -import org.ofbiz.minilang.*; -import org.ofbiz.minilang.method.*; +import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.ObjectType; +import org.ofbiz.base.util.UtilXml; +import org.ofbiz.minilang.SimpleMethod; +import org.ofbiz.minilang.method.ContextAccessor; +import org.ofbiz.minilang.method.MethodContext; +import org.ofbiz.minilang.method.MethodOperation; +import org.w3c.dom.Element; /** - * Iff the specified field is not empty process sub-operations + * If the specified field is not empty process sub-operations */ public class IfEmpty extends MethodOperation { - public static final class IfEmptyFactory implements Factory<IfEmpty> { - public IfEmpty createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new IfEmpty(element, simpleMethod); - } - - public String getName() { - return "if-empty"; - } - } public static final String module = IfEmpty.class.getName(); - List<MethodOperation> subOps = FastList.newInstance(); List<MethodOperation> elseSubOps = null; - - ContextAccessor<Map<String, ? extends Object>> mapAcsr; ContextAccessor<Object> fieldAcsr; + ContextAccessor<Map<String, ? extends Object>> mapAcsr; + List<MethodOperation> subOps = FastList.newInstance(); public IfEmpty(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); @@ -58,9 +53,7 @@ public class IfEmpty extends MethodOpera // NOTE: this is still supported, but is deprecated this.fieldAcsr = new ContextAccessor<Object>(element.getAttribute("field-name")); } - SimpleMethod.readOperations(element, subOps, simpleMethod); - Element elseElement = UtilXml.firstChildElement(element, "else"); if (elseElement != null) { elseSubOps = FastList.newInstance(); @@ -73,15 +66,14 @@ public class IfEmpty extends MethodOpera // if conditions fails, always return true; if a sub-op returns false // return false and stop, otherwise return true // return true; - // only run subOps if element is empty/null boolean runSubOps = false; Object fieldVal = null; - if (!mapAcsr.isEmpty()) { Map<String, ? extends Object> fromMap = mapAcsr.get(methodContext); if (fromMap == null) { - if (Debug.infoOn()) Debug.logInfo("Map not found with name " + mapAcsr + ", running operations", module); + if (Debug.infoOn()) + Debug.logInfo("Map not found with name " + mapAcsr + ", running operations", module); } else { fieldVal = fieldAcsr.get(fromMap, methodContext); } @@ -89,9 +81,7 @@ public class IfEmpty extends MethodOpera // no map name, try the env fieldVal = fieldAcsr.get(methodContext); } - runSubOps = ObjectType.isEmpty(fieldVal); - if (runSubOps) { return SimpleMethod.runSubOps(subOps, methodContext); } else { @@ -103,10 +93,17 @@ public class IfEmpty extends MethodOpera } } + @Override + public String expandedString(MethodContext methodContext) { + // TODO: something more than a stub/dummy + return this.rawString(); + } + public List<MethodOperation> getAllSubOps() { List<MethodOperation> allSubOps = FastList.newInstance(); allSubOps.addAll(this.subOps); - if (this.elseSubOps != null) allSubOps.addAll(this.elseSubOps); + if (this.elseSubOps != null) + allSubOps.addAll(this.elseSubOps); return allSubOps; } @@ -114,9 +111,14 @@ public class IfEmpty extends MethodOpera public String rawString() { return "<if-empty field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\"/>"; } - @Override - public String expandedString(MethodContext methodContext) { - // TODO: something more than a stub/dummy - return this.rawString(); + + public static final class IfEmptyFactory implements Factory<IfEmpty> { + public IfEmpty createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new IfEmpty(element, simpleMethod); + } + + public String getName() { + return "if-empty"; + } } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfHasPermission.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfHasPermission.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfHasPermission.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfHasPermission.java Thu Apr 19 15:09:03 2012 @@ -34,33 +34,20 @@ import org.ofbiz.security.authz.Authoriz import org.w3c.dom.Element; /** - * Iff the user has the specified permission, process the sub-operations. Otherwise - * process else operations if specified. + * If the user has the specified permission, process the sub-operations. Otherwise process else operations if specified. */ public class IfHasPermission extends MethodOperation { - public static final class IfHasPermissionFactory implements Factory<IfHasPermission> { - public IfHasPermission createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new IfHasPermission(element, simpleMethod); - } - - public String getName() { - return "if-has-permission"; - } - } - protected List<MethodOperation> subOps = FastList.newInstance(); + protected FlexibleStringExpander actionExdr; protected List<MethodOperation> elseSubOps = null; - protected FlexibleStringExpander permissionExdr; - protected FlexibleStringExpander actionExdr; + protected List<MethodOperation> subOps = FastList.newInstance(); public IfHasPermission(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); this.permissionExdr = FlexibleStringExpander.getInstance(element.getAttribute("permission")); this.actionExdr = FlexibleStringExpander.getInstance(element.getAttribute("action")); - SimpleMethod.readOperations(element, subOps, simpleMethod); - Element elseElement = UtilXml.firstChildElement(element, "else"); if (elseElement != null) { elseSubOps = FastList.newInstance(); @@ -73,16 +60,13 @@ public class IfHasPermission extends Met // if conditions fails, always return true; if a sub-op returns false // return false and stop, otherwise return true // return true; - // only run subOps if element is empty/null boolean runSubOps = false; - // if no user is logged in, treat as if the user does not have permission: do not run subops GenericValue userLogin = methodContext.getUserLogin(); if (userLogin != null) { String permission = methodContext.expandString(permissionExdr); String action = methodContext.expandString(actionExdr); - Authorization authz = methodContext.getAuthz(); Security security = methodContext.getSecurity(); if (UtilValidate.isNotEmpty(action)) { @@ -97,7 +81,6 @@ public class IfHasPermission extends Met } } } - if (runSubOps) { return SimpleMethod.runSubOps(subOps, methodContext); } else { @@ -109,10 +92,17 @@ public class IfHasPermission extends Met } } + @Override + public String expandedString(MethodContext methodContext) { + // TODO: something more than a stub/dummy + return this.rawString(); + } + public List<MethodOperation> getAllSubOps() { List<MethodOperation> allSubOps = FastList.newInstance(); allSubOps.addAll(this.subOps); - if (this.elseSubOps != null) allSubOps.addAll(this.elseSubOps); + if (this.elseSubOps != null) + allSubOps.addAll(this.elseSubOps); return allSubOps; } @@ -120,9 +110,14 @@ public class IfHasPermission extends Met public String rawString() { return "<if-has-permission permission=\"" + this.permissionExdr + "\" action=\"" + this.actionExdr + "\"/>"; } - @Override - public String expandedString(MethodContext methodContext) { - // TODO: something more than a stub/dummy - return this.rawString(); + + public static final class IfHasPermissionFactory implements Factory<IfHasPermission> { + public IfHasPermission createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new IfHasPermission(element, simpleMethod); + } + + public String getName() { + return "if-has-permission"; + } } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfInstanceOf.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfInstanceOf.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfInstanceOf.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfInstanceOf.java Thu Apr 19 15:09:03 2012 @@ -23,35 +23,24 @@ import java.util.Map; import javolution.util.FastList; -import org.ofbiz.minilang.method.MethodOperation; -import org.ofbiz.minilang.method.MethodContext; -import org.ofbiz.minilang.method.ContextAccessor; -import org.ofbiz.minilang.SimpleMethod; import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.ObjectType; import org.ofbiz.base.util.UtilXml; - +import org.ofbiz.minilang.SimpleMethod; +import org.ofbiz.minilang.method.ContextAccessor; +import org.ofbiz.minilang.method.MethodContext; +import org.ofbiz.minilang.method.MethodOperation; import org.w3c.dom.Element; public class IfInstanceOf extends MethodOperation { - public static final class IfInstanceOfFactory implements Factory<IfInstanceOf> { - public IfInstanceOf createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new IfInstanceOf(element, simpleMethod); - } - - public String getName() { - return "if-instance-of"; - } - } public static final String module = IfInstanceOf.class.getName(); - protected List<MethodOperation> subOps = FastList.newInstance(); + protected String className = null; protected List<MethodOperation> elseSubOps = null; - - protected ContextAccessor<Map<String, ? extends Object>> mapAcsr = null; protected ContextAccessor<Object> fieldAcsr = null; - protected String className = null; + protected ContextAccessor<Map<String, ? extends Object>> mapAcsr = null; + protected List<MethodOperation> subOps = FastList.newInstance(); public IfInstanceOf(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); @@ -59,9 +48,7 @@ public class IfInstanceOf extends Method this.fieldAcsr = new ContextAccessor<Object>(element.getAttribute("field"), element.getAttribute("field-name")); this.mapAcsr = new ContextAccessor<Map<String, ? extends Object>>(element.getAttribute("map-name")); this.className = element.getAttribute("class"); - SimpleMethod.readOperations(element, subOps, simpleMethod); - Element elseElement = UtilXml.firstChildElement(element, "else"); if (elseElement != null) { elseSubOps = FastList.newInstance(); @@ -74,11 +61,11 @@ public class IfInstanceOf extends Method // only run subOps if element is instanceOf boolean runSubOps = false; Object fieldVal = null; - if (!mapAcsr.isEmpty()) { Map<String, ? extends Object> fromMap = mapAcsr.get(methodContext); if (fromMap == null) { - if (Debug.infoOn()) Debug.logInfo("Map not found with name " + mapAcsr + ", running operations", module); + if (Debug.infoOn()) + Debug.logInfo("Map not found with name " + mapAcsr + ", running operations", module); } else { fieldVal = fieldAcsr.get(fromMap, methodContext); } @@ -86,9 +73,7 @@ public class IfInstanceOf extends Method // no map name, try the env fieldVal = fieldAcsr.get(methodContext); } - runSubOps = ObjectType.instanceOf(fieldVal, className); - if (runSubOps) { return SimpleMethod.runSubOps(subOps, methodContext); } else { @@ -100,10 +85,17 @@ public class IfInstanceOf extends Method } } + @Override + public String expandedString(MethodContext methodContext) { + // TODO: something more than a stub/dummy + return this.rawString(); + } + public List<MethodOperation> getAllSubOps() { List<MethodOperation> allSubOps = FastList.newInstance(); allSubOps.addAll(this.subOps); - if (this.elseSubOps != null) allSubOps.addAll(this.elseSubOps); + if (this.elseSubOps != null) + allSubOps.addAll(this.elseSubOps); return allSubOps; } @@ -112,9 +104,14 @@ public class IfInstanceOf extends Method // TODO: add all attributes and other info return "<if-instance-of field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\"/>"; } - @Override - public String expandedString(MethodContext methodContext) { - // TODO: something more than a stub/dummy - return this.rawString(); + + public static final class IfInstanceOfFactory implements Factory<IfInstanceOf> { + public IfInstanceOf createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new IfInstanceOf(element, simpleMethod); + } + + public String getName() { + return "if-instance-of"; + } } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfNotEmpty.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfNotEmpty.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfNotEmpty.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfNotEmpty.java Thu Apr 19 15:09:03 2012 @@ -18,36 +18,31 @@ *******************************************************************************/ package org.ofbiz.minilang.method.ifops; -import java.util.*; +import java.util.List; +import java.util.Map; import javolution.util.FastList; -import org.w3c.dom.*; -import org.ofbiz.base.util.*; -import org.ofbiz.minilang.*; -import org.ofbiz.minilang.method.*; +import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.ObjectType; +import org.ofbiz.base.util.UtilXml; +import org.ofbiz.minilang.SimpleMethod; +import org.ofbiz.minilang.method.ContextAccessor; +import org.ofbiz.minilang.method.MethodContext; +import org.ofbiz.minilang.method.MethodOperation; +import org.w3c.dom.Element; /** - * Iff the specified field is not empty process sub-operations + * If the specified field is not empty process sub-operations */ public class IfNotEmpty extends MethodOperation { - public static final class IfNotEmptyFactory implements Factory<IfNotEmpty> { - public IfNotEmpty createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new IfNotEmpty(element, simpleMethod); - } - - public String getName() { - return "if-not-empty"; - } - } public static final String module = IfNotEmpty.class.getName(); - protected List<MethodOperation> subOps = FastList.newInstance(); protected List<MethodOperation> elseSubOps = null; - - protected ContextAccessor<Map<String, ? extends Object>> mapAcsr; protected ContextAccessor<Object> fieldAcsr; + protected ContextAccessor<Map<String, ? extends Object>> mapAcsr; + protected List<MethodOperation> subOps = FastList.newInstance(); public IfNotEmpty(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); @@ -58,11 +53,8 @@ public class IfNotEmpty extends MethodOp // NOTE: this is still supported, but is deprecated this.fieldAcsr = new ContextAccessor<Object>(element.getAttribute("field-name")); } - SimpleMethod.readOperations(element, subOps, simpleMethod); - Element elseElement = UtilXml.firstChildElement(element, "else"); - if (elseElement != null) { elseSubOps = FastList.newInstance(); SimpleMethod.readOperations(elseElement, elseSubOps, simpleMethod); @@ -74,13 +66,12 @@ public class IfNotEmpty extends MethodOp // if conditions fails, always return true; if a sub-op returns false // return false and stop, otherwise return true // return true; - Object fieldVal = null; - if (!mapAcsr.isEmpty()) { Map<String, ? extends Object> fromMap = mapAcsr.get(methodContext); if (fromMap == null) { - if (Debug.verboseOn()) Debug.logVerbose("Map not found with name " + mapAcsr + ", not running operations", module); + if (Debug.verboseOn()) + Debug.logVerbose("Map not found with name " + mapAcsr + ", not running operations", module); } else { fieldVal = fieldAcsr.get(fromMap, methodContext); } @@ -88,14 +79,12 @@ public class IfNotEmpty extends MethodOp // no map name, try the env fieldVal = fieldAcsr.get(methodContext); } - if (fieldVal == null) { - if (Debug.verboseOn()) Debug.logVerbose("Field value not found with name " + fieldAcsr + " in Map with name " + mapAcsr + ", not running operations", module); + if (Debug.verboseOn()) + Debug.logVerbose("Field value not found with name " + fieldAcsr + " in Map with name " + mapAcsr + ", not running operations", module); } - // only run subOps if element is not empty/null boolean runSubOps = !ObjectType.isEmpty(fieldVal); - if (runSubOps) { // if (Debug.verboseOn()) Debug.logVerbose("IfNotEmpty: Running if operations mapAcsr=" + mapAcsr + " fieldAcsr=" + fieldAcsr, module); return SimpleMethod.runSubOps(subOps, methodContext); @@ -110,10 +99,17 @@ public class IfNotEmpty extends MethodOp } } + @Override + public String expandedString(MethodContext methodContext) { + // TODO: something more than a stub/dummy + return this.rawString(); + } + public List<MethodOperation> getAllSubOps() { List<MethodOperation> allSubOps = FastList.newInstance(); allSubOps.addAll(this.subOps); - if (this.elseSubOps != null) allSubOps.addAll(this.elseSubOps); + if (this.elseSubOps != null) + allSubOps.addAll(this.elseSubOps); return allSubOps; } @@ -122,9 +118,14 @@ public class IfNotEmpty extends MethodOp // TODO: add all attributes and other info return "<if-not-empty field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\"/>"; } - @Override - public String expandedString(MethodContext methodContext) { - // TODO: something more than a stub/dummy - return this.rawString(); + + public static final class IfNotEmptyFactory implements Factory<IfNotEmpty> { + public IfNotEmpty createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new IfNotEmpty(element, simpleMethod); + } + + public String getName() { + return "if-not-empty"; + } } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfRegexp.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfRegexp.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfRegexp.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfRegexp.java Thu Apr 19 15:09:03 2012 @@ -37,43 +37,27 @@ import org.ofbiz.minilang.method.MethodO import org.w3c.dom.Element; /** - * Iff the specified field complies with the pattern specified by the regular expression, process sub-operations + * If the specified field complies with the pattern specified by the regular expression, process sub-operations */ public class IfRegexp extends MethodOperation { - public static final class IfRegexpFactory implements Factory<IfRegexp> { - public IfRegexp createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new IfRegexp(element, simpleMethod); - } - - public String getName() { - return "if-regexp"; - } - } public static final String module = IfRegexp.class.getName(); - private transient static ThreadLocal<CompilerMatcher> compilerMatcher = CompilerMatcher.getThreadLocal(); - List<MethodOperation> subOps = FastList.newInstance(); List<MethodOperation> elseSubOps = null; - - ContextAccessor<Map<String, ? extends Object>> mapAcsr; - ContextAccessor<Object> fieldAcsr; - FlexibleStringExpander exprExdr; + ContextAccessor<Object> fieldAcsr; + ContextAccessor<Map<String, ? extends Object>> mapAcsr; + List<MethodOperation> subOps = FastList.newInstance(); public IfRegexp(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); // the schema for this element now just has the "field" attribute, though the old "field-name" and "map-name" pair is still supported this.fieldAcsr = new ContextAccessor<Object>(element.getAttribute("field"), element.getAttribute("field-name")); this.mapAcsr = new ContextAccessor<Map<String, ? extends Object>>(element.getAttribute("map-name")); - this.exprExdr = FlexibleStringExpander.getInstance(element.getAttribute("expr")); - SimpleMethod.readOperations(element, subOps, simpleMethod); - Element elseElement = UtilXml.firstChildElement(element, "else"); - if (elseElement != null) { elseSubOps = FastList.newInstance(); SimpleMethod.readOperations(elseElement, elseSubOps, simpleMethod); @@ -84,14 +68,13 @@ public class IfRegexp extends MethodOper public boolean exec(MethodContext methodContext) { // if conditions fails, always return true; if a sub-op returns false // return false and stop, otherwise return true - String fieldString = null; Object fieldVal = null; - if (!mapAcsr.isEmpty()) { Map<String, ? extends Object> fromMap = mapAcsr.get(methodContext); if (fromMap == null) { - if (Debug.infoOn()) Debug.logInfo("Map not found with name " + mapAcsr + ", using empty string for comparison", module); + if (Debug.infoOn()) + Debug.logInfo("Map not found with name " + mapAcsr + ", using empty string for comparison", module); } else { fieldVal = fieldAcsr.get(fromMap, methodContext); } @@ -99,7 +82,6 @@ public class IfRegexp extends MethodOper // no map name, try the env fieldVal = fieldAcsr.get(methodContext); } - if (fieldVal != null) { try { fieldString = (String) ObjectType.simpleTypeConvert(fieldVal, "String", null, methodContext.getTimeZone(), methodContext.getLocale(), true); @@ -108,15 +90,14 @@ public class IfRegexp extends MethodOper } } // always use an empty string by default - if (fieldString == null) fieldString = ""; - + if (fieldString == null) + fieldString = ""; boolean matches = false; try { matches = compilerMatcher.get().matches(fieldString, methodContext.expandString(this.exprExdr)); } catch (MalformedPatternException e) { Debug.logError(e, "Regular Expression [" + this.exprExdr + "] is mal-formed: " + e.toString(), module); } - if (matches) { return SimpleMethod.runSubOps(subOps, methodContext); } else { @@ -128,10 +109,17 @@ public class IfRegexp extends MethodOper } } + @Override + public String expandedString(MethodContext methodContext) { + // TODO: something more than a stub/dummy + return this.rawString(); + } + public List<MethodOperation> getAllSubOps() { List<MethodOperation> allSubOps = FastList.newInstance(); allSubOps.addAll(this.subOps); - if (this.elseSubOps != null) allSubOps.addAll(this.elseSubOps); + if (this.elseSubOps != null) + allSubOps.addAll(this.elseSubOps); return allSubOps; } @@ -140,9 +128,14 @@ public class IfRegexp extends MethodOper // TODO: add all attributes and other info return "<if-regexp field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\"/>"; } - @Override - public String expandedString(MethodContext methodContext) { - // TODO: something more than a stub/dummy - return this.rawString(); + + public static final class IfRegexpFactory implements Factory<IfRegexp> { + public IfRegexp createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new IfRegexp(element, simpleMethod); + } + + public String getName() { + return "if-regexp"; + } } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfValidateMethod.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfValidateMethod.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfValidateMethod.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfValidateMethod.java Thu Apr 19 15:09:03 2012 @@ -35,28 +35,18 @@ import org.ofbiz.minilang.method.MethodO import org.w3c.dom.Element; /** - * Iff the validate method returns true with the specified field process sub-operations + * If the validate method returns true with the specified field process sub-operations */ public class IfValidateMethod extends MethodOperation { - public static final class IfValidateMethodFactory implements Factory<IfValidateMethod> { - public IfValidateMethod createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new IfValidateMethod(element, simpleMethod); - } - - public String getName() { - return "if-validate-method"; - } - } public static final String module = IfValidateMethod.class.getName(); - List<MethodOperation> subOps = FastList.newInstance(); + String className; List<MethodOperation> elseSubOps = null; - - ContextAccessor<Map<String, ? extends Object>> mapAcsr; ContextAccessor<Object> fieldAcsr; + ContextAccessor<Map<String, ? extends Object>> mapAcsr; String methodName; - String className; + List<MethodOperation> subOps = FastList.newInstance(); public IfValidateMethod(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); @@ -65,9 +55,7 @@ public class IfValidateMethod extends Me this.mapAcsr = new ContextAccessor<Map<String, ? extends Object>>(element.getAttribute("map-name")); this.methodName = element.getAttribute("method"); this.className = element.getAttribute("class"); - SimpleMethod.readOperations(element, subOps, simpleMethod); - Element elseElement = UtilXml.firstChildElement(element, "else"); if (elseElement != null) { elseSubOps = FastList.newInstance(); @@ -79,17 +67,15 @@ public class IfValidateMethod extends Me public boolean exec(MethodContext methodContext) { // if conditions fails, always return true; if a sub-op returns false // return false and stop, otherwise return true - String methodName = methodContext.expandString(this.methodName); String className = methodContext.expandString(this.className); - String fieldString = null; Object fieldVal = null; - if (!mapAcsr.isEmpty()) { Map<String, ? extends Object> fromMap = mapAcsr.get(methodContext); if (fromMap == null) { - if (Debug.infoOn()) Debug.logInfo("Map not found with name " + mapAcsr + ", using empty string for comparison", module); + if (Debug.infoOn()) + Debug.logInfo("Map not found with name " + mapAcsr + ", using empty string for comparison", module); } else { fieldVal = fieldAcsr.get(fromMap, methodContext); } @@ -97,7 +83,6 @@ public class IfValidateMethod extends Me // no map name, try the env fieldVal = fieldAcsr.get(methodContext); } - if (fieldVal != null) { try { fieldString = (String) ObjectType.simpleTypeConvert(fieldVal, "String", null, methodContext.getTimeZone(), methodContext.getLocale(), true); @@ -105,13 +90,11 @@ public class IfValidateMethod extends Me Debug.logError(e, "Could not convert object to String, using empty String", module); } } - // always use an empty string by default - if (fieldString == null) fieldString = ""; - - Class<?>[] paramTypes = new Class[] {String.class}; - Object[] params = new Object[] {fieldString}; - + if (fieldString == null) + fieldString = ""; + Class<?>[] paramTypes = new Class[] { String.class }; + Object[] params = new Object[] { fieldString }; Class<?> valClass; try { valClass = methodContext.getLoader().loadClass(className); @@ -119,7 +102,6 @@ public class IfValidateMethod extends Me Debug.logError("Could not find validation class: " + className, module); return false; } - Method valMethod; try { valMethod = valClass.getMethod(methodName, paramTypes); @@ -127,14 +109,12 @@ public class IfValidateMethod extends Me Debug.logError("Could not find validation method: " + methodName + " of class " + className, module); return false; } - Boolean resultBool = Boolean.FALSE; try { resultBool = (Boolean) valMethod.invoke(null, params); } catch (Exception e) { Debug.logError(e, "Error in IfValidationMethod " + methodName + " of class " + className + ", not processing sub-ops ", module); } - if (resultBool.booleanValue()) { return SimpleMethod.runSubOps(subOps, methodContext); } else { @@ -146,10 +126,17 @@ public class IfValidateMethod extends Me } } + @Override + public String expandedString(MethodContext methodContext) { + // TODO: something more than a stub/dummy + return this.rawString(); + } + public List<MethodOperation> getAllSubOps() { List<MethodOperation> allSubOps = FastList.newInstance(); allSubOps.addAll(this.subOps); - if (this.elseSubOps != null) allSubOps.addAll(this.elseSubOps); + if (this.elseSubOps != null) + allSubOps.addAll(this.elseSubOps); return allSubOps; } @@ -158,9 +145,14 @@ public class IfValidateMethod extends Me // TODO: add all attributes and other info return "<if-validate-method field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\"/>"; } - @Override - public String expandedString(MethodContext methodContext) { - // TODO: something more than a stub/dummy - return this.rawString(); + + public static final class IfValidateMethodFactory implements Factory<IfValidateMethod> { + public IfValidateMethod createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new IfValidateMethod(element, simpleMethod); + } + + public String getName() { + return "if-validate-method"; + } } } |
| Free forum by Nabble | Edit this page |
