Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/otherops/Calculate.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/otherops/Calculate.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/otherops/Calculate.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/otherops/Calculate.java Thu Apr 19 15:09:03 2012 @@ -21,8 +21,8 @@ package org.ofbiz.minilang.method.othero import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.List; -import java.util.Map; import java.util.Locale; +import java.util.Map; import javolution.util.FastMap; @@ -40,52 +40,39 @@ import org.w3c.dom.Element; * Calculates a result based on nested calcops. */ public class Calculate extends MethodOperation { - public static final class CalculateFactory implements Factory<Calculate> { - public Calculate createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new Calculate(element, simpleMethod); - } - - public String getName() { - return "calculate"; - } - } public static final String module = Calculate.class.getName(); - public static final BigDecimal ZERO = BigDecimal.ZERO; public static final int TYPE_DOUBLE = 1; public static final int TYPE_FLOAT = 2; public static final int TYPE_LONG = 3; public static final int TYPE_INTEGER = 4; public static final int TYPE_STRING = 5; public static final int TYPE_BIG_DECIMAL = 6; + public static final BigDecimal ZERO = BigDecimal.ZERO; - ContextAccessor<Map<String, Object>> mapAcsr; - ContextAccessor<Object> fieldAcsr; - String decimalScaleString; + Calculate.SubCalc calcops[]; String decimalFormatString; - String typeString; + String decimalScaleString; + ContextAccessor<Object> fieldAcsr; + ContextAccessor<Map<String, Object>> mapAcsr; String roundingModeString; - Calculate.SubCalc calcops[]; + String typeString; public Calculate(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, Object>>(element.getAttribute("map-name")); - decimalScaleString = element.getAttribute("decimal-scale"); decimalFormatString = element.getAttribute("decimal-format"); typeString = element.getAttribute("type"); roundingModeString = element.getAttribute("rounding-mode"); - List<? extends Element> calcopElements = UtilXml.childElementList(element); calcops = new Calculate.SubCalc[calcopElements.size()]; int i = 0; - - for (Element calcopElement: calcopElements) { + for (Element calcopElement : calcopElements) { String nodeName = calcopElement.getNodeName(); - if ("calcop".equals(nodeName)) { calcops[i] = new Calculate.CalcOp(calcopElement); } else if ("number".equals(nodeName)) { @@ -93,7 +80,6 @@ public class Calculate extends MethodOpe } else { Debug.logError("Error: calculate operation with type " + nodeName, module); } - // Debug.logInfo("Added operation type " + nodeName + " in position " + i, module); i++; } } @@ -117,7 +103,6 @@ public class Calculate extends MethodOpe } else { type = Calculate.TYPE_BIG_DECIMAL; } - String roundingModeString = methodContext.expandString(this.roundingModeString); int roundingMode; if ("Ceiling".equals(roundingModeString)) { @@ -140,76 +125,63 @@ public class Calculate extends MethodOpe // default to HalfEven, reduce cumulative errors roundingMode = BigDecimal.ROUND_HALF_EVEN; } - String decimalScaleString = methodContext.expandString(this.decimalScaleString); int decimalScale = 2; if (UtilValidate.isNotEmpty(decimalScaleString)) { decimalScale = Integer.valueOf(decimalScaleString).intValue(); } - String decimalFormatString = methodContext.expandString(this.decimalFormatString); DecimalFormat df = null; if (UtilValidate.isNotEmpty(decimalFormatString)) { df = new DecimalFormat(decimalFormatString); } - BigDecimal resultValue = ZERO; resultValue = resultValue.setScale(decimalScale, roundingMode); - for (Calculate.SubCalc calcop: calcops) { + for (Calculate.SubCalc calcop : calcops) { resultValue = resultValue.add(calcop.calcValue(methodContext, decimalScale, roundingMode)); // Debug.logInfo("main total so far: " + resultValue, module); } resultValue = resultValue.setScale(decimalScale, roundingMode); - - /* the old thing that did conversion to string and back, may want to use somewhere sometime...: - * for now just doing the setScale above (before and after calc ops) - try { - resultValue = new BigDecimal(df.format(resultValue)); - } catch (ParseException e) { - String errorMessage = "Unable to format [" + formatString + "] result [" + resultValue + "]"; - Debug.logError(e, errorMessage, module); - if (methodContext.getMethodType() == MethodContext.EVENT) { - methodContext.putEnv(simpleMethod.getEventErrorMessageName(), errorMessage); - } else if (methodContext.getMethodType() == MethodContext.SERVICE) { - methodContext.putEnv(simpleMethod.getServiceErrorMessageName(), errorMessage); - } - return false; - } - */ - + /* + * the old thing that did conversion to string and back, may want to use somewhere sometime...: for now just doing the setScale above (before and after calc ops) try { resultValue = new + * BigDecimal(df.format(resultValue)); } catch (ParseException e) { String errorMessage = "Unable to format [" + formatString + "] result [" + resultValue + "]"; Debug.logError(e, + * errorMessage, module); if (methodContext.getMethodType() == MethodContext.EVENT) { methodContext.putEnv(simpleMethod.getEventErrorMessageName(), errorMessage); } else if + * (methodContext.getMethodType() == MethodContext.SERVICE) { methodContext.putEnv(simpleMethod.getServiceErrorMessageName(), errorMessage); } return false; } + */ Object resultObj = null; switch (type) { - case TYPE_DOUBLE: - resultObj = Double.valueOf(resultValue.doubleValue()); - break; - case TYPE_FLOAT: - resultObj = Float.valueOf(resultValue.floatValue()); - break; - case TYPE_LONG: - resultValue = resultValue.setScale(0, roundingMode); - resultObj = Long.valueOf(resultValue.longValue()); - break; - case TYPE_INTEGER: - resultValue = resultValue.setScale(0, roundingMode); - resultObj = Integer.valueOf(resultValue.intValue()); - break; - case TYPE_STRING: - // run the decimal-formatting - if (df != null && resultValue.compareTo(ZERO) > 0) { - resultObj = df.format(resultValue); - } else { - resultObj = resultValue.toString(); - } - break; - case TYPE_BIG_DECIMAL: - resultObj = resultValue; - break; + case TYPE_DOUBLE: + resultObj = Double.valueOf(resultValue.doubleValue()); + break; + case TYPE_FLOAT: + resultObj = Float.valueOf(resultValue.floatValue()); + break; + case TYPE_LONG: + resultValue = resultValue.setScale(0, roundingMode); + resultObj = Long.valueOf(resultValue.longValue()); + break; + case TYPE_INTEGER: + resultValue = resultValue.setScale(0, roundingMode); + resultObj = Integer.valueOf(resultValue.intValue()); + break; + case TYPE_STRING: + // run the decimal-formatting + if (df != null && resultValue.compareTo(ZERO) > 0) { + resultObj = df.format(resultValue); + } else { + resultObj = resultValue.toString(); + } + break; + case TYPE_BIG_DECIMAL: + resultObj = resultValue; + break; } if (!mapAcsr.isEmpty()) { Map<String, Object> toMap = mapAcsr.get(methodContext); if (toMap == null) { - if (Debug.verboseOn()) Debug.logVerbose("Map not found with name " + mapAcsr + ", creating new map", module); + if (Debug.verboseOn()) + Debug.logVerbose("Map not found with name " + mapAcsr + ", creating new map", module); toMap = FastMap.newInstance(); mapAcsr.put(methodContext, toMap); } @@ -222,73 +194,40 @@ public class Calculate extends MethodOpe } @Override - public String rawString() { - // TODO: add all attributes and other info - return "<calculate field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\"/>"; - } - @Override public String expandedString(MethodContext methodContext) { // TODO: something more than a stub/dummy return this.rawString(); } - protected static interface SubCalc { - public BigDecimal calcValue(MethodContext methodContext, int scale, int roundingMode); - } - - protected static class NumberOp implements SubCalc { - String valueStr; - - public NumberOp(Element element) { - valueStr = element.getAttribute("value"); - } - - public BigDecimal calcValue(MethodContext methodContext, int scale, int roundingMode) { - String valueStr = methodContext.expandString(this.valueStr); - Locale locale = methodContext.getLocale(); - - if (locale == null) locale = Locale.getDefault(); - - BigDecimal value; - try { - BigDecimal parseVal = (BigDecimal) ObjectType.simpleTypeConvert(valueStr, "BigDecimal", null, null, locale, true); - value = parseVal.setScale(scale, roundingMode); - } catch (Exception e) { - Debug.logError(e, "Could not parse the number string: " + valueStr, module); - throw new IllegalArgumentException("Could not parse the number string: " + valueStr); - } - - // Debug.logInfo("calcValue number: " + value, module); - return value; - } - + @Override + public String rawString() { + // TODO: add all attributes and other info + return "<calculate field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\"/>"; } protected static class CalcOp implements SubCalc { public static final int OPERATOR_ADD = 1; - public static final int OPERATOR_SUBTRACT = 2; - public static final int OPERATOR_MULTIPLY = 3; public static final int OPERATOR_DIVIDE = 4; + public static final int OPERATOR_MULTIPLY = 3; public static final int OPERATOR_NEGATIVE = 5; + public static final int OPERATOR_SUBTRACT = 2; - ContextAccessor<Map<String, ? extends Object>> mapAcsr; + Calculate.SubCalc calcops[]; ContextAccessor<Object> fieldAcsr; + ContextAccessor<Map<String, ? extends Object>> mapAcsr; String operatorStr; - Calculate.SubCalc calcops[]; public CalcOp(Element element) { // 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")); operatorStr = element.getAttribute("operator"); - List<? extends Element> calcopElements = UtilXml.childElementList(element); calcops = new Calculate.SubCalc[calcopElements.size()]; int i = 0; - for (Element calcopElement: calcopElements) { + for (Element calcopElement : calcopElements) { String nodeName = calcopElement.getNodeName(); - if ("calcop".equals(calcopElement.getNodeName())) { calcops[i] = new Calculate.CalcOp(calcopElement); } else if ("number".equals(calcopElement.getNodeName())) { @@ -296,7 +235,6 @@ public class Calculate extends MethodOpe } else { Debug.logError("Error: calculate operation unknown with type " + nodeName, module); } - // Debug.logInfo("Added operation type " + nodeName + " in position " + i, module); i++; } } @@ -317,19 +255,17 @@ public class Calculate extends MethodOpe } else if ("negative".equals(operatorStr)) { operator = CalcOp.OPERATOR_NEGATIVE; } - BigDecimal resultValue = ZERO; resultValue = resultValue.setScale(scale, roundingMode); boolean isFirst = true; - // if a fieldAcsr was specified, get the field from the map or result and use it as the initial value if (!fieldAcsr.isEmpty()) { Object fieldObj = 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 + ", creating new map", module); + if (Debug.verboseOn()) + Debug.logVerbose("Map not found with name " + mapAcsr + ", creating new map", module); fromMap = FastMap.newInstance(); mapAcsr.put(methodContext, fromMap); } @@ -337,7 +273,6 @@ public class Calculate extends MethodOpe } else { fieldObj = fieldAcsr.get(methodContext); } - if (fieldObj != null) { if (fieldObj instanceof Double) { resultValue = new BigDecimal(((Double) fieldObj).doubleValue()); @@ -352,39 +287,78 @@ public class Calculate extends MethodOpe } else if (fieldObj instanceof BigDecimal) { resultValue = (BigDecimal) fieldObj; } - if (operator == OPERATOR_NEGATIVE) resultValue = resultValue.negate(); + if (operator == OPERATOR_NEGATIVE) + resultValue = resultValue.negate(); isFirst = false; } else { - if (Debug.infoOn()) Debug.logInfo("Field not found with field-name " + fieldAcsr + ", and map-name " + mapAcsr + "using a default of 0", module); + if (Debug.infoOn()) + Debug.logInfo("Field not found with field-name " + fieldAcsr + ", and map-name " + mapAcsr + "using a default of 0", module); } } - - for (SubCalc calcop: calcops) { + for (SubCalc calcop : calcops) { if (isFirst) { resultValue = calcop.calcValue(methodContext, scale, roundingMode); - if (operator == OPERATOR_NEGATIVE) resultValue = resultValue.negate(); + if (operator == OPERATOR_NEGATIVE) + resultValue = resultValue.negate(); isFirst = false; } else { switch (operator) { - case OPERATOR_ADD: - resultValue = resultValue.add(calcop.calcValue(methodContext, scale, roundingMode)); - break; - case OPERATOR_SUBTRACT: - case OPERATOR_NEGATIVE: - resultValue = resultValue.subtract(calcop.calcValue(methodContext, scale, roundingMode)); - break; - case OPERATOR_MULTIPLY: - resultValue = resultValue.multiply(calcop.calcValue(methodContext, scale, roundingMode)); - break; - case OPERATOR_DIVIDE: - resultValue = resultValue.divide(calcop.calcValue(methodContext, scale, roundingMode), scale, roundingMode); - break; + case OPERATOR_ADD: + resultValue = resultValue.add(calcop.calcValue(methodContext, scale, roundingMode)); + break; + case OPERATOR_SUBTRACT: + case OPERATOR_NEGATIVE: + resultValue = resultValue.subtract(calcop.calcValue(methodContext, scale, roundingMode)); + break; + case OPERATOR_MULTIPLY: + resultValue = resultValue.multiply(calcop.calcValue(methodContext, scale, roundingMode)); + break; + case OPERATOR_DIVIDE: + resultValue = resultValue.divide(calcop.calcValue(methodContext, scale, roundingMode), scale, roundingMode); + break; } } - // Debug.logInfo("sub total so far: " + resultValue, module); } - // Debug.logInfo("calcValue calcop: " + resultValue + "(field=" + fieldAcsr + ", map=" + mapAcsr + ")", module); return resultValue; } } + + public static final class CalculateFactory implements Factory<Calculate> { + public Calculate createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new Calculate(element, simpleMethod); + } + + public String getName() { + return "calculate"; + } + } + + protected static class NumberOp implements SubCalc { + String valueStr; + + public NumberOp(Element element) { + valueStr = element.getAttribute("value"); + } + + public BigDecimal calcValue(MethodContext methodContext, int scale, int roundingMode) { + String valueStr = methodContext.expandString(this.valueStr); + Locale locale = methodContext.getLocale(); + if (locale == null) + locale = Locale.getDefault(); + BigDecimal value; + try { + BigDecimal parseVal = (BigDecimal) ObjectType.simpleTypeConvert(valueStr, "BigDecimal", null, null, locale, true); + value = parseVal.setScale(scale, roundingMode); + } catch (Exception e) { + Debug.logError(e, "Could not parse the number string: " + valueStr, module); + throw new IllegalArgumentException("Could not parse the number string: " + valueStr); + } + return value; + } + + } + + protected static interface SubCalc { + public BigDecimal calcValue(MethodContext methodContext, int scale, int roundingMode); + } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/otherops/Log.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/otherops/Log.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/otherops/Log.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/otherops/Log.java Thu Apr 19 15:09:03 2012 @@ -18,52 +18,47 @@ *******************************************************************************/ package org.ofbiz.minilang.method.otherops; -import java.util.*; +import java.util.List; -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.UtilXml; +import org.ofbiz.minilang.SimpleMethod; +import org.ofbiz.minilang.method.FieldString; +import org.ofbiz.minilang.method.MethodContext; +import org.ofbiz.minilang.method.MethodOperation; +import org.ofbiz.minilang.method.MethodString; +import org.ofbiz.minilang.method.StringString; +import org.w3c.dom.Element; /** * Calculates a result based on nested calcops. */ public class Log extends MethodOperation { - public static final class LogFactory implements Factory<Log> { - public Log createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new Log(element, simpleMethod); - } - - public String getName() { - return "log"; - } - } public static final String module = Log.class.getName(); String levelStr; String message; - Object startLine; List<MethodString> methodStrings = null; + Object startLine; public Log(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); this.message = element.getAttribute("message"); this.levelStr = element.getAttribute("level"); this.startLine = element.getUserData("startLine"); - List<? extends Element> methodStringElements = UtilXml.childElementList(element); if (methodStringElements.size() > 0) { methodStrings = FastList.newInstance(); - - for (Element methodStringElement: methodStringElements) { + for (Element methodStringElement : methodStringElements) { if ("string".equals(methodStringElement.getNodeName())) { methodStrings.add(new StringString(methodStringElement, simpleMethod)); } else if ("field".equals(methodStringElement.getNodeName())) { methodStrings.add(new FieldString(methodStringElement, simpleMethod)); } else { - //whoops, invalid tag here, print warning + // whoops, invalid tag here, print warning Debug.logWarning("Found an unsupported tag under the log tag: " + methodStringElement.getNodeName() + "; ignoring", module); } } @@ -74,7 +69,6 @@ public class Log extends MethodOperation public boolean exec(MethodContext methodContext) { String levelStr = methodContext.expandString(this.levelStr); String message = methodContext.expandString(this.message); - int level; Integer levelInt = Debug.getLevelFromString(levelStr); if (levelInt == null) { @@ -83,12 +77,10 @@ public class Log extends MethodOperation } else { level = levelInt.intValue(); } - - //bail out quick if the logging level isn't on, ie don't even create string + // bail out quick if the logging level isn't on, ie don't even create string if (!Debug.isOn(level)) { return true; } - StringBuilder buf = new StringBuilder(); buf.append("["); String methodLocation = this.simpleMethod.getFromLocation(); @@ -104,29 +96,38 @@ public class Log extends MethodOperation buf.append(this.startLine); } buf.append("] "); - - if (message != null) buf.append(message); - + if (message != null) + buf.append(message); if (methodStrings != null) { - for (MethodString methodString: methodStrings) { + for (MethodString methodString : methodStrings) { String strValue = methodString.getString(methodContext); - if (strValue != null) buf.append(strValue); + if (strValue != null) + buf.append(strValue); } } - Debug.log(level, null, buf.toString(), module); - return true; } @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 "<log level=\"" + this.levelStr + "\" message=\"" + this.message + "\"/>"; } - @Override - public String expandedString(MethodContext methodContext) { - // TODO: something more than a stub/dummy - return this.rawString(); + + public static final class LogFactory implements Factory<Log> { + public Log createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new Log(element, simpleMethod); + } + + public String getName() { + return "log"; + } } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/otherops/PropertyToField.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/otherops/PropertyToField.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/otherops/PropertyToField.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/otherops/PropertyToField.java Thu Apr 19 15:09:03 2012 @@ -18,39 +18,35 @@ *******************************************************************************/ package org.ofbiz.minilang.method.otherops; -import java.text.*; -import java.util.*; +import java.text.MessageFormat; +import java.util.List; +import java.util.Map; -import org.w3c.dom.*; import javolution.util.FastMap; -import org.ofbiz.base.util.*; + +import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.UtilValidate; import org.ofbiz.entity.util.EntityUtilProperties; -import org.ofbiz.minilang.*; -import org.ofbiz.minilang.method.*; +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 an properties file property value to a field */ public class PropertyToField extends MethodOperation { - public static final class PropertyToFieldFactory implements Factory<PropertyToField> { - public PropertyToField createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new PropertyToField(element, simpleMethod); - } - - public String getName() { - return "property-to-field"; - } - } public static final String module = PropertyToField.class.getName(); - String resource; - String property; - ContextAccessor<Map<String, Object>> mapAcsr; - ContextAccessor<Object> fieldAcsr; + ContextAccessor<List<? extends Object>> argListAcsr; String defaultVal; + ContextAccessor<Object> fieldAcsr; + ContextAccessor<Map<String, Object>> mapAcsr; boolean noLocale; - ContextAccessor<List<? extends Object>> argListAcsr; + String property; + String resource; public PropertyToField(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); @@ -69,7 +65,6 @@ public class PropertyToField extends Met public boolean exec(MethodContext methodContext) { String resource = methodContext.expandString(this.resource); String property = methodContext.expandString(this.property); - String value = null; if (noLocale) { value = EntityUtilProperties.getPropertyValue(resource, property, methodContext.getDelegator()); @@ -79,24 +74,21 @@ public class PropertyToField extends Met if (UtilValidate.isEmpty(value)) { value = defaultVal; } - // note that expanding the value string here will handle defaultValue and the string from - // the properties file; if we decide later that we don't want the string from the properties - // file to be expanded we should just expand the defaultValue at the beginning of this method. + // the properties file; if we decide later that we don't want the string from the properties + // file to be expanded we should just expand the defaultValue at the beginning of this method. value = methodContext.expandString(value); - if (!argListAcsr.isEmpty()) { List<? extends Object> argList = argListAcsr.get(methodContext); if (UtilValidate.isNotEmpty(argList)) { value = MessageFormat.format(value, argList.toArray()); } } - if (!mapAcsr.isEmpty()) { Map<String, Object> toMap = mapAcsr.get(methodContext); - if (toMap == null) { - if (Debug.infoOn()) Debug.logInfo("Map not found with name " + mapAcsr + ", creating new map", module); + if (Debug.infoOn()) + Debug.logInfo("Map not found with name " + mapAcsr + ", creating new map", module); toMap = FastMap.newInstance(); mapAcsr.put(methodContext, toMap); } @@ -104,18 +96,28 @@ public class PropertyToField extends Met } else { fieldAcsr.put(methodContext, value); } - return true; } @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 "<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 PropertyToFieldFactory implements Factory<PropertyToField> { + public PropertyToField createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new PropertyToField(element, simpleMethod); + } + + public String getName() { + return "property-to-field"; + } } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/serviceops/FieldToResult.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/serviceops/FieldToResult.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/serviceops/FieldToResult.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/serviceops/FieldToResult.java Thu Apr 19 15:09:03 2012 @@ -18,31 +18,24 @@ *******************************************************************************/ package org.ofbiz.minilang.method.serviceops; -import java.util.*; +import java.util.Map; -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.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 map field to a Service result entry */ public class FieldToResult extends MethodOperation { - public static final class FieldToResultFactory implements Factory<FieldToResult> { - public FieldToResult createMethodOperation(Element element, SimpleMethod simpleMethod) { - return new FieldToResult(element, simpleMethod); - } - - public String getName() { - return "field-to-result"; - } - } public static final String module = FieldToResult.class.getName(); - ContextAccessor<Map<String, ? extends Object>> mapAcsr; ContextAccessor<Object> fieldAcsr; + ContextAccessor<Map<String, ? extends Object>> mapAcsr; ContextAccessor<Object> resultAcsr; public FieldToResult(Element element, SimpleMethod simpleMethod) { @@ -58,39 +51,45 @@ public class FieldToResult extends Metho // only run this if it is in an SERVICE context if (methodContext.getMethodType() == MethodContext.SERVICE) { Object fieldVal = null; - if (!mapAcsr.isEmpty()) { Map<String, ? extends Object> fromMap = mapAcsr.get(methodContext); - if (fromMap == null) { Debug.logWarning("Map not found with name " + mapAcsr, module); return true; } - fieldVal = fieldAcsr.get(fromMap, methodContext); } else { // no map name, try the env fieldVal = fieldAcsr.get(methodContext); } - if (fieldVal == null) { Debug.logWarning("Field value not found with name " + fieldAcsr + " in Map with name " + mapAcsr, module); return true; } - resultAcsr.put(methodContext.getResults(), fieldVal, methodContext); } return true; } @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 "<field-to-result 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 FieldToResultFactory implements Factory<FieldToResult> { + public FieldToResult createMethodOperation(Element element, SimpleMethod simpleMethod) { + return new FieldToResult(element, simpleMethod); + } + + public String getName() { + return "field-to-result"; + } } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/BaseCompare.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/BaseCompare.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/BaseCompare.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/BaseCompare.java Thu Apr 19 15:09:03 2012 @@ -18,51 +18,41 @@ *******************************************************************************/ package org.ofbiz.minilang.operation; -import java.util.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; -import org.w3c.dom.*; -import org.ofbiz.base.util.*; +import org.ofbiz.base.util.ObjectType; +import org.w3c.dom.Element; /** * Abstract class providing functionality for the compare SimpleMapOperations */ public abstract class BaseCompare extends SimpleMapOperation { + + public static Boolean doRealCompare(Object value1, Object value2, String operator, String type, String format, List<Object> messages, Locale locale, ClassLoader loader, boolean value2InlineConstant) { + return ObjectType.doRealCompare(value1, value2, operator, type, format, messages, locale, loader, value2InlineConstant); + } + + String format; String operator; String type; - String format; public BaseCompare(Element element, SimpleMapProcess simpleMapProcess) { super(element, simpleMapProcess); this.operator = element.getAttribute("operator"); this.type = element.getAttribute("type"); this.format = element.getAttribute("format"); - - /* -- Let ObjectType handle the default -- - if (UtilValidate.isEmpty(this.format)) { - if ("Date".equals(type)) { - this.format = "yyyy-MM-dd"; - } else if ("Time".equals(type)) { - this.format = "HH:mm:ss"; - } else if ("Timestamp".equals(type)) { - this.format = "yyyy-MM-dd HH:mm:ss"; - } - } - */ } public void doCompare(Object value1, Object value2, List<Object> messages, Locale locale, ClassLoader loader, boolean value2InlineConstant) { Boolean success = BaseCompare.doRealCompare(value1, value2, this.operator, this.type, this.format, messages, locale, loader, value2InlineConstant); - if (success != null && success.booleanValue() == false) { addMessage(messages, loader, locale); } } @Override - public void exec(Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale, ClassLoader loader) {} - - public static Boolean doRealCompare(Object value1, Object value2, String operator, String type, String format, - List<Object> messages, Locale locale, ClassLoader loader, boolean value2InlineConstant) { - return ObjectType.doRealCompare(value1, value2, operator, type, format, messages, locale, loader, value2InlineConstant); + public void exec(Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale, ClassLoader loader) { } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Compare.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Compare.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Compare.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Compare.java Thu Apr 19 15:09:03 2012 @@ -18,8 +18,11 @@ *******************************************************************************/ package org.ofbiz.minilang.operation; -import java.util.*; -import org.w3c.dom.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import org.w3c.dom.Element; /** * Compares an in-field to the specified value @@ -36,7 +39,6 @@ public class Compare extends BaseCompare @Override public void exec(Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale, ClassLoader loader) { Object fieldValue = inMap.get(fieldName); - doCompare(fieldValue, value, messages, locale, loader, true); } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/CompareField.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/CompareField.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/CompareField.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/CompareField.java Thu Apr 19 15:09:03 2012 @@ -18,8 +18,11 @@ *******************************************************************************/ package org.ofbiz.minilang.operation; -import java.util.*; -import org.w3c.dom.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import org.w3c.dom.Element; /** * Compares the current field to another field Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/ConstantOper.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/ConstantOper.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/ConstantOper.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/ConstantOper.java Thu Apr 19 15:09:03 2012 @@ -18,13 +18,16 @@ *******************************************************************************/ package org.ofbiz.minilang.operation; -import java.util.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; -import org.w3c.dom.*; -import org.ofbiz.base.util.*; +import org.ofbiz.base.util.UtilXml; +import org.w3c.dom.Element; /** - * <p><b>Title:</b> A MakeInStringOperation that appends the specified constant string + * <p> + * <b>Title:</b> A MakeInStringOperation that appends the specified constant string */ public class ConstantOper extends MakeInStringOperation { Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Convert.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Convert.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Convert.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Convert.java Thu Apr 19 15:09:03 2012 @@ -32,13 +32,14 @@ import org.w3c.dom.Element; * Convert the current field from the in-map and place it in the out-map */ public class Convert extends SimpleMapOperation { + public static final String module = Convert.class.getName(); - String toField; - String type; + String format; boolean replace = true; boolean setIfNull = true; - String format; + String toField; + String type; public Convert(Element element, SimpleMapProcess simpleMapProcess) { super(element, simpleMapProcess); @@ -46,26 +47,22 @@ public class Convert extends SimpleMapOp if (UtilValidate.isEmpty(this.toField)) { this.toField = this.fieldName; } - type = element.getAttribute("type"); // if anything but false it will be true replace = !"false".equals(element.getAttribute("replace")); // if anything but false it will be true setIfNull = !"false".equals(element.getAttribute("set-if-null")); - format = element.getAttribute("format"); } @Override public void exec(Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale, ClassLoader loader) { Object fieldObject = inMap.get(fieldName); - if (fieldObject == null) { if (setIfNull && (replace || !results.containsKey(toField))) results.put(toField, null); return; } - // if an incoming string is empty, // set to null if setIfNull is true, otherwise do nothing, ie treat as if null if (fieldObject instanceof java.lang.String) { @@ -75,9 +72,7 @@ public class Convert extends SimpleMapOp return; } } - Object convertedObject = null; - try { convertedObject = ObjectType.simpleTypeConvert(fieldObject, type, format, locale); } catch (GeneralException e) { @@ -85,10 +80,8 @@ public class Convert extends SimpleMapOp Debug.logError(e, "Error in convert simple-map-processor operation: " + e.toString(), module); return; } - if (convertedObject == null) return; - if (replace) { results.put(toField, convertedObject); // if (Debug.infoOn()) Debug.logInfo("[SimpleMapProcessor.Converted.exec] Put converted value \"" + convertedObject + "\" in field \"" + toField + "\"", module); Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Copy.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Copy.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Copy.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Copy.java Thu Apr 19 15:09:03 2012 @@ -18,10 +18,12 @@ *******************************************************************************/ package org.ofbiz.minilang.operation; -import java.util.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; import org.ofbiz.base.util.UtilValidate; -import org.w3c.dom.*; +import org.w3c.dom.Element; /** * Copies a field in the in-map to the out-map @@ -38,7 +40,6 @@ public class Copy extends SimpleMapOpera if (UtilValidate.isEmpty(this.toField)) { this.toField = this.fieldName; } - // if anything but false it will be true replace = !"false".equals(element.getAttribute("replace")); // if anything but false it will be true @@ -48,10 +49,8 @@ public class Copy extends SimpleMapOpera @Override public void exec(Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale, ClassLoader loader) { Object fieldValue = inMap.get(fieldName); - if (fieldValue == null && !setIfNull) return; - if (fieldValue instanceof java.lang.String) { if (((String) fieldValue).length() == 0) { if (setIfNull && (replace || !results.containsKey(toField))) { @@ -60,7 +59,6 @@ public class Copy extends SimpleMapOpera return; } } - if (replace) { results.put(toField, fieldValue); // if (Debug.infoOn()) Debug.logInfo("[SimpleMapProcessor.Copy.exec] Copied \"" + fieldValue + "\" to field \"" + toField + "\"", module); Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/InFieldOper.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/InFieldOper.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/InFieldOper.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/InFieldOper.java Thu Apr 19 15:09:03 2012 @@ -18,10 +18,14 @@ *******************************************************************************/ package org.ofbiz.minilang.operation; -import java.util.*; - -import org.w3c.dom.*; -import org.ofbiz.base.util.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.GeneralException; +import org.ofbiz.base.util.ObjectType; +import org.w3c.dom.Element; /** * A MakeInStringOperation that inserts the value of an in-field @@ -40,7 +44,6 @@ public class InFieldOper extends MakeInS @Override public String exec(Map<String, Object> inMap, List<Object> messages, Locale locale, ClassLoader loader) { Object obj = inMap.get(fieldName); - if (obj == null) { Debug.logWarning("[SimpleMapProcessor.InFieldOper.exec] In field " + fieldName + " not found, not appending anything", module); return null; Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/MakeInString.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/MakeInString.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/MakeInString.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/MakeInString.java Thu Apr 19 15:09:03 2012 @@ -18,12 +18,16 @@ *******************************************************************************/ package org.ofbiz.minilang.operation; -import java.util.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; import javolution.util.FastList; -import org.w3c.dom.*; -import org.ofbiz.base.util.*; +import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.UtilValidate; +import org.ofbiz.base.util.UtilXml; +import org.w3c.dom.Element; /** * The container of MakeInString operations to make a new input String @@ -37,13 +41,10 @@ public class MakeInString { public MakeInString(Element makeInStringElement) { fieldName = makeInStringElement.getAttribute("field"); - List<? extends Element> operationElements = UtilXml.childElementList(makeInStringElement); - if (UtilValidate.isNotEmpty(operationElements)) { - for (Element curOperElem: operationElements) { + for (Element curOperElem : operationElements) { String nodeName = curOperElem.getNodeName(); - if ("in-field".equals(nodeName)) { operations.add(new InFieldOper(curOperElem)); } else if ("property".equals(nodeName)) { @@ -59,9 +60,8 @@ public class MakeInString { public void exec(Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale, ClassLoader loader) { StringBuilder buffer = new StringBuilder(); - for (MakeInStringOperation oper: operations) { + for (MakeInStringOperation oper : operations) { String curStr = oper.exec(inMap, messages, locale, loader); - if (curStr != null) buffer.append(curStr); } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/MakeInStringOperation.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/MakeInStringOperation.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/MakeInStringOperation.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/MakeInStringOperation.java Thu Apr 19 15:09:03 2012 @@ -18,15 +18,19 @@ *******************************************************************************/ package org.ofbiz.minilang.operation; -import java.util.*; -import org.w3c.dom.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import org.w3c.dom.Element; /** * Abstract class defining the interface to a MakeInString operation */ public abstract class MakeInStringOperation { - public MakeInStringOperation(Element element) {} + public MakeInStringOperation(Element element) { + } public abstract String exec(Map<String, Object> inMap, List<Object> messages, Locale locale, ClassLoader loader); } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/MapProcessor.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/MapProcessor.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/MapProcessor.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/MapProcessor.java Thu Apr 19 15:09:03 2012 @@ -18,52 +18,51 @@ *******************************************************************************/ package org.ofbiz.minilang.operation; -import java.util.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; import javolution.util.FastList; -import org.w3c.dom.*; -import org.ofbiz.base.util.*; + +import org.ofbiz.base.util.UtilValidate; +import org.ofbiz.base.util.UtilXml; +import org.w3c.dom.Element; /** * Map Processor Main Class */ public class MapProcessor { - String name; List<MakeInString> makeInStrings = FastList.newInstance(); + String name; List<SimpleMapProcess> simpleMapProcesses = FastList.newInstance(); public MapProcessor(Element simpleMapProcessorElement) { name = simpleMapProcessorElement.getAttribute("name"); - - for (Element makeInStringElement: UtilXml.childElementList(simpleMapProcessorElement, "make-in-string")) { + for (Element makeInStringElement : UtilXml.childElementList(simpleMapProcessorElement, "make-in-string")) { MakeInString makeInString = new MakeInString(makeInStringElement); - makeInStrings.add(makeInString); } - - for (Element simpleMapProcessElement: UtilXml.childElementList(simpleMapProcessorElement, "process")) { + for (Element simpleMapProcessElement : UtilXml.childElementList(simpleMapProcessorElement, "process")) { SimpleMapProcess strProc = new SimpleMapProcess(simpleMapProcessElement); - simpleMapProcesses.add(strProc); } } - public String getName() { - return name; - } - public void exec(Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale, ClassLoader loader) { if (UtilValidate.isNotEmpty(makeInStrings)) { - for (MakeInString makeInString: makeInStrings) { + for (MakeInString makeInString : makeInStrings) { makeInString.exec(inMap, results, messages, locale, loader); } } - if (UtilValidate.isNotEmpty(simpleMapProcesses)) { - for (SimpleMapProcess simpleMapProcess: simpleMapProcesses) { + for (SimpleMapProcess simpleMapProcess : simpleMapProcesses) { simpleMapProcess.exec(inMap, results, messages, locale, loader); } } } + + public String getName() { + return name; + } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/NotEmpty.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/NotEmpty.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/NotEmpty.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/NotEmpty.java Thu Apr 19 15:09:03 2012 @@ -18,10 +18,12 @@ *******************************************************************************/ package org.ofbiz.minilang.operation; -import java.util.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; -import org.w3c.dom.*; -import org.ofbiz.base.util.*; +import org.ofbiz.base.util.UtilValidate; +import org.w3c.dom.Element; /** * Checks to see if the current field is empty (null or zero length) @@ -35,10 +37,8 @@ public class NotEmpty extends SimpleMapO @Override public void exec(Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale, ClassLoader loader) { Object obj = inMap.get(fieldName); - if (obj instanceof java.lang.String) { String fieldValue = (java.lang.String) obj; - if (!UtilValidate.isNotEmpty(fieldValue)) { addMessage(messages, loader, locale); } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/PropertyOper.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/PropertyOper.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/PropertyOper.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/PropertyOper.java Thu Apr 19 15:09:03 2012 @@ -18,10 +18,15 @@ *******************************************************************************/ package org.ofbiz.minilang.operation; -import java.util.*; - -import org.w3c.dom.*; -import org.ofbiz.base.util.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.UtilProperties; +import org.ofbiz.base.util.UtilURL; +import org.ofbiz.base.util.UtilValidate; +import org.w3c.dom.Element; /** * A MakeInStringOperation that insert the value of a property from a properties file @@ -30,8 +35,8 @@ public class PropertyOper extends MakeIn public static final String module = PropertyOper.class.getName(); - String resource; String property; + String resource; public PropertyOper(Element element) { super(element); Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Regexp.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Regexp.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Regexp.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Regexp.java Thu Apr 19 15:09:03 2012 @@ -35,7 +35,6 @@ import org.w3c.dom.Element; public class Regexp extends SimpleMapOperation { public static final String module = Regexp.class.getName(); - private transient static ThreadLocal<CompilerMatcher> compilerMatcher = CompilerMatcher.getThreadLocal(); String expr; @@ -48,16 +47,13 @@ public class Regexp extends SimpleMapOpe @Override public void exec(Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale, ClassLoader loader) { Object obj = inMap.get(fieldName); - String fieldValue = null; - try { fieldValue = (String) ObjectType.simpleTypeConvert(obj, "String", null, locale); } catch (GeneralException e) { messages.add("Could not convert field value for comparison: " + e.getMessage()); return; } - boolean matches = false; try { matches = compilerMatcher.get().matches(fieldValue, expr); @@ -65,7 +61,6 @@ public class Regexp extends SimpleMapOpe Debug.logError(e, "Regular Expression [" + this.expr + "] is mal-formed: " + e.toString(), module); return; } - if (!matches) { addMessage(messages, loader, locale); } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/SimpleMapOperation.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/SimpleMapOperation.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/SimpleMapOperation.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/SimpleMapOperation.java Thu Apr 19 15:09:03 2012 @@ -18,26 +18,30 @@ *******************************************************************************/ package org.ofbiz.minilang.operation; -import java.util.*; - -import org.w3c.dom.*; -import org.ofbiz.base.util.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import org.ofbiz.base.util.MessageString; +import org.ofbiz.base.util.UtilProperties; +import org.ofbiz.base.util.UtilValidate; +import org.ofbiz.base.util.UtilXml; +import org.w3c.dom.Element; /** * A single operation, does the specified operation on the given field */ public abstract class SimpleMapOperation { + String fieldName; + boolean isProperty = false; String message = null; String propertyResource = null; - boolean isProperty = false; SimpleMapProcess simpleMapProcess; - String fieldName; public SimpleMapOperation(Element element, SimpleMapProcess simpleMapProcess) { 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; @@ -46,13 +50,10 @@ public abstract class SimpleMapOperation this.message = failProperty.getAttribute("property"); this.isProperty = true; } - this.simpleMapProcess = simpleMapProcess; this.fieldName = simpleMapProcess.getFieldName(); } - public abstract void exec(Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale, ClassLoader loader); - public void addMessage(List<Object> messages, ClassLoader loader, Locale locale) { if (!isProperty && message != null) { messages.add(new MessageString(message, fieldName, true)); @@ -71,4 +72,6 @@ public abstract class SimpleMapOperation // if (Debug.infoOn()) Debug.logInfo("[SimpleMapOperation.addMessage] ERROR: No message found", module); } } + + public abstract void exec(Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale, ClassLoader loader); } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/SimpleMapProcess.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/SimpleMapProcess.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/SimpleMapProcess.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/SimpleMapProcess.java Thu Apr 19 15:09:03 2012 @@ -18,12 +18,16 @@ *******************************************************************************/ package org.ofbiz.minilang.operation; -import java.util.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; import javolution.util.FastList; -import org.w3c.dom.*; -import org.ofbiz.base.util.*; +import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.UtilValidate; +import org.ofbiz.base.util.UtilXml; +import org.w3c.dom.Element; /** * A complete string process for a given field; contains multiple string operations @@ -32,31 +36,29 @@ public class SimpleMapProcess { public static final String module = SimpleMapProcess.class.getName(); - List<SimpleMapOperation> simpleMapOperations = FastList.newInstance(); String field = ""; + List<SimpleMapOperation> simpleMapOperations = FastList.newInstance(); public SimpleMapProcess(Element simpleMapProcessElement) { this.field = simpleMapProcessElement.getAttribute("field"); readOperations(simpleMapProcessElement); } - public String getFieldName() { - return field; - } - public void exec(Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale, ClassLoader loader) { - for (SimpleMapOperation simpleMapOperation: simpleMapOperations) { + for (SimpleMapOperation simpleMapOperation : simpleMapOperations) { simpleMapOperation.exec(inMap, results, messages, locale, loader); } } + public String getFieldName() { + return field; + } + void readOperations(Element simpleMapProcessElement) { List<? extends Element> operationElements = UtilXml.childElementList(simpleMapProcessElement); - if (UtilValidate.isNotEmpty(operationElements)) { - for (Element curOperElem: operationElements) { + for (Element curOperElem : operationElements) { String nodeName = curOperElem.getNodeName(); - if ("validate-method".equals(nodeName)) { simpleMapOperations.add(new ValidateMethod(curOperElem, this)); } else if ("compare".equals(nodeName)) { Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/ValidateMethod.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/ValidateMethod.java?rev=1327981&r1=1327980&r2=1327981&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/ValidateMethod.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/ValidateMethod.java Thu Apr 19 15:09:03 2012 @@ -18,12 +18,15 @@ *******************************************************************************/ package org.ofbiz.minilang.operation; -import java.util.*; -import java.lang.reflect.*; - -import org.w3c.dom.*; - -import org.ofbiz.base.util.*; +import java.lang.reflect.Method; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.GeneralException; +import org.ofbiz.base.util.ObjectType; +import org.w3c.dom.Element; /** * A string operation that calls a validation method @@ -32,8 +35,8 @@ public class ValidateMethod extends Simp public static final String module = ValidateMethod.class.getName(); - String methodName; String className; + String methodName; public ValidateMethod(Element element, SimpleMapProcess simpleMapProcess) { super(element, simpleMapProcess); @@ -44,49 +47,37 @@ public class ValidateMethod extends Simp @Override public void exec(Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale, ClassLoader loader) { Object obj = inMap.get(fieldName); - String fieldValue = null; - try { fieldValue = (String) ObjectType.simpleTypeConvert(obj, "String", null, locale); } catch (GeneralException e) { messages.add("Could not convert field value for comparison: " + e.getMessage()); return; } - if (loader == null) { loader = Thread.currentThread().getContextClassLoader(); } - - Class<?>[] paramTypes = new Class<?>[] {String.class}; - Object[] params = new Object[] {fieldValue}; - + Class<?>[] paramTypes = new Class<?>[] { String.class }; + Object[] params = new Object[] { fieldValue }; Class<?> valClass; - try { valClass = loader.loadClass(className); } catch (ClassNotFoundException cnfe) { String msg = "Could not find validation class: " + className; - messages.add(msg); Debug.logError("[ValidateMethod.exec] " + msg, module); return; } - Method valMethod; - try { valMethod = valClass.getMethod(methodName, paramTypes); } catch (NoSuchMethodException cnfe) { String msg = "Could not find validation method: " + methodName + " of class " + className; - messages.add(msg); Debug.logError("[ValidateMethod.exec] " + msg, module); return; } - Boolean resultBool = Boolean.FALSE; - try { resultBool = (Boolean) valMethod.invoke(null, params); } catch (Exception e) { @@ -96,7 +87,6 @@ public class ValidateMethod extends Simp Debug.logError("[ValidateMethod.exec] " + msg, module); return; } - if (!resultBool.booleanValue()) { addMessage(messages, loader, locale); } |
Free forum by Nabble | Edit this page |