Author: doogie
Date: Sun Aug 3 20:00:54 2008 New Revision: 682246 URL: http://svn.apache.org/viewvc?rev=682246&view=rev Log: Generification, enhanced-for, FastMap/FastList changes. Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleMapProcessor.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleMethod.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleMethodBsfEngine.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleServiceEngine.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ContextAccessor.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/FieldObject.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/FieldString.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MethodContext.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MethodObject.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/StringObject.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/AddError.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallBsh.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallClassMethod.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallObjectMethod.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallService.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallServiceAsynch.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallSimpleMapProcessor.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallSimpleMethod.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CheckErrors.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CreateObject.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/SetServiceFields.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/Assert.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/CombinedCondition.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/CompareCondition.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/CompareFieldCondition.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/Conditional.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/EmptyCondition.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/HasPermissionCondition.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/MasterIf.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/RegexpCondition.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/ValidateMethodCondition.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/conditional/While.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/ClearCacheLine.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/CloneValue.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/CreateValue.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/EntityCount.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/EntityData.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/FilterListByAnd.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/FilterListByDate.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/FindByAnd.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/FindByPrimaryKey.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/GetRelated.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/GetRelatedOne.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/MakeNextSeqId.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/MakeValue.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/NowDateToEnv.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/NowTimestampToEnv.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/OrderValueList.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/RefreshValue.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveByAnd.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveList.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveRelated.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveValue.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/SequencedIdToEnv.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/SetCurrentUserLogin.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/SetNonpkFields.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/SetPkFields.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/StoreList.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/StoreValue.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/TransactionBegin.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/TransactionCommit.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/TransactionRollback.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/ClearField.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/EnvToEnv.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/EnvToField.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/FieldToEnv.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/FieldToField.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/FieldToList.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/FirstFromList.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/Iterate.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/IterateMap.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/ListToList.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/Loop.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/MapToMap.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/OrderMapList.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/SetCalendar.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/SetOperation.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/StringAppend.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/StringToField.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/StringToList.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/ToString.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/eventops/FieldToRequest.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/eventops/FieldToSession.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/eventops/RequestParametersToList.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/eventops/RequestToField.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/eventops/SessionToField.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/eventops/WebappPropertyToField.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/CheckId.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/CheckPermission.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfCompare.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfCompareField.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfEmpty.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfInstanceOf.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfNotEmpty.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfRegexp.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ifops/IfValidateMethod.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/otherops/Calculate.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/otherops/Log.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/otherops/PropertyToField.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/serviceops/FieldToResult.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/BaseCompare.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Compare.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/CompareField.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/ConstantOper.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Convert.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Copy.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/InFieldOper.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/MakeInString.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/MakeInStringOperation.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/MapProcessor.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/NotEmpty.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/Regexp.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/SimpleMapOperation.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/SimpleMapProcess.java ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/operation/ValidateMethod.java Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleMapProcessor.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleMapProcessor.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleMapProcessor.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleMapProcessor.java Sun Aug 3 20:00:54 2008 @@ -25,6 +25,8 @@ import java.util.Locale; import java.util.Map; +import javolution.util.FastMap; + import org.ofbiz.base.util.UtilURL; import org.ofbiz.base.util.UtilXml; import org.ofbiz.base.util.cache.UtilCache; @@ -37,19 +39,19 @@ */ public class SimpleMapProcessor { - protected static UtilCache simpleMapProcessorsResourceCache = new UtilCache("minilang.SimpleMapProcessorsResource", 0, 0); - protected static UtilCache simpleMapProcessorsURLCache = new UtilCache("minilang.SimpleMapProcessorsURL", 0, 0); + protected static UtilCache<String, Map<String, MapProcessor>> simpleMapProcessorsResourceCache = new UtilCache<String, Map<String, MapProcessor>>("minilang.SimpleMapProcessorsResource", 0, 0); + protected static UtilCache<URL, Map<String, MapProcessor>> simpleMapProcessorsURLCache = new UtilCache<URL, Map<String, MapProcessor>>("minilang.SimpleMapProcessorsURL", 0, 0); - public static void runSimpleMapProcessor(String xmlResource, String name, Map inMap, Map results, List messages, Locale locale) throws MiniLangException { + public static void runSimpleMapProcessor(String xmlResource, String name, Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale) throws MiniLangException { runSimpleMapProcessor(xmlResource, name, inMap, results, messages, locale, null); } - public static void runSimpleMapProcessor(String xmlResource, String name, Map inMap, Map results, List messages, Locale locale, ClassLoader loader) throws MiniLangException { + public static void runSimpleMapProcessor(String xmlResource, String name, Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale, ClassLoader loader) throws MiniLangException { if (loader == null) loader = Thread.currentThread().getContextClassLoader(); - Map mapProcessors = getProcessors(xmlResource, name, loader); - MapProcessor processor = (MapProcessor) mapProcessors.get(name); + Map<String, MapProcessor> mapProcessors = getProcessors(xmlResource, name, loader); + MapProcessor processor = mapProcessors.get(name); if (processor == null) { throw new MiniLangException("Could not find SimpleMapProcessor named " + name + " in XML document resource: " + xmlResource); @@ -59,12 +61,12 @@ processor.exec(inMap, results, messages, locale, loader); } - public static void runSimpleMapProcessor(URL xmlURL, String name, Map inMap, Map results, List messages, Locale locale, ClassLoader loader) throws MiniLangException { + public static void runSimpleMapProcessor(URL xmlURL, String name, Map<String, Object> inMap, Map<String, Object> results, List<Object> messages, Locale locale, ClassLoader loader) throws MiniLangException { if (loader == null) loader = Thread.currentThread().getContextClassLoader(); - Map mapProcessors = getProcessors(xmlURL, name); - MapProcessor processor = (MapProcessor) mapProcessors.get(name); + Map<String, MapProcessor> mapProcessors = getProcessors(xmlURL, name); + MapProcessor processor = mapProcessors.get(name); if (processor == null) { throw new MiniLangException("Could not find SimpleMapProcessor named " + name + " in XML document: " + xmlURL.toString()); @@ -74,12 +76,12 @@ processor.exec(inMap, results, messages, locale, loader); } - protected static Map getProcessors(String xmlResource, String name, ClassLoader loader) throws MiniLangException { - Map simpleMapProcessors = (Map) simpleMapProcessorsResourceCache.get(xmlResource); + protected static Map<String, MapProcessor> getProcessors(String xmlResource, String name, ClassLoader loader) throws MiniLangException { + Map<String, MapProcessor> simpleMapProcessors = simpleMapProcessorsResourceCache.get(xmlResource); if (simpleMapProcessors == null) { synchronized (SimpleMapProcessor.class) { - simpleMapProcessors = (Map) simpleMapProcessorsResourceCache.get(xmlResource); + simpleMapProcessors = simpleMapProcessorsResourceCache.get(xmlResource); if (simpleMapProcessors == null) { URL xmlURL = UtilURL.fromResource(xmlResource, loader); @@ -97,12 +99,12 @@ return simpleMapProcessors; } - protected static Map getProcessors(URL xmlURL, String name) throws MiniLangException { - Map simpleMapProcessors = (Map) simpleMapProcessorsURLCache.get(xmlURL); + protected static Map<String, MapProcessor> getProcessors(URL xmlURL, String name) throws MiniLangException { + Map<String, MapProcessor> simpleMapProcessors = simpleMapProcessorsURLCache.get(xmlURL); if (simpleMapProcessors == null) { synchronized (SimpleMapProcessor.class) { - simpleMapProcessors = (Map) simpleMapProcessorsURLCache.get(xmlURL); + simpleMapProcessors = simpleMapProcessorsURLCache.get(xmlURL); if (simpleMapProcessors == null) { simpleMapProcessors = getAllProcessors(xmlURL); @@ -115,8 +117,8 @@ return simpleMapProcessors; } - protected static Map getAllProcessors(URL xmlURL) throws MiniLangException { - Map mapProcessors = new HashMap(); + protected static Map<String, MapProcessor> getAllProcessors(URL xmlURL) throws MiniLangException { + Map<String, MapProcessor> mapProcessors = FastMap.newInstance(); // read in the file Document document = null; @@ -136,11 +138,7 @@ } Element rootElement = document.getDocumentElement(); - List simpleMapProcessorElements = UtilXml.childElementList(rootElement, "simple-map-processor"); - Iterator strProcorIter = simpleMapProcessorElements.iterator(); - - while (strProcorIter.hasNext()) { - Element simpleMapProcessorElement = (Element) strProcorIter.next(); + for (Element simpleMapProcessorElement: UtilXml.childElementList(rootElement, "simple-map-processor")) { MapProcessor processor = new MapProcessor(simpleMapProcessorElement); mapProcessors.put(simpleMapProcessorElement.getAttribute("name"), processor); Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleMethod.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleMethod.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleMethod.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleMethod.java Sun Aug 3 20:00:54 2008 @@ -35,6 +35,7 @@ import org.ofbiz.base.location.FlexibleLocation; import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.UtilGenerics; import org.ofbiz.base.util.UtilMisc; import org.ofbiz.base.util.UtilProperties; import org.ofbiz.base.util.UtilValidate; @@ -85,9 +86,9 @@ public static final String module = SimpleMethod.class.getName(); public static final String err_resource = "MiniLangErrorUiLabels"; - protected static UtilCache<String, Map<String, SimpleMethod>> simpleMethodsDirectCache = new UtilCache("minilang.SimpleMethodsDirect", 0, 0); - protected static UtilCache<String, Map<String, SimpleMethod>> simpleMethodsResourceCache = new UtilCache("minilang.SimpleMethodsResource", 0, 0); - protected static UtilCache<URL, Map<String, SimpleMethod>> simpleMethodsURLCache = new UtilCache("minilang.SimpleMethodsURL", 0, 0); + protected static UtilCache<String, Map<String, SimpleMethod>> simpleMethodsDirectCache = new UtilCache<String, Map<String, SimpleMethod>>("minilang.SimpleMethodsDirect", 0, 0); + protected static UtilCache<String, Map<String, SimpleMethod>> simpleMethodsResourceCache = new UtilCache<String, Map<String, SimpleMethod>>("minilang.SimpleMethodsResource", 0, 0); + protected static UtilCache<URL, Map<String, SimpleMethod>> simpleMethodsURLCache = new UtilCache<URL, Map<String, SimpleMethod>>("minilang.SimpleMethodsURL", 0, 0); // ----- Event Context Invokers ----- @@ -105,19 +106,19 @@ // ----- Service Context Invokers ----- - public static Map runSimpleService(String xmlResource, String methodName, DispatchContext ctx, Map context) throws MiniLangException { + public static Map<String, Object> runSimpleService(String xmlResource, String methodName, DispatchContext ctx, Map<String, ? extends Object> context) throws MiniLangException { MethodContext methodContext = new MethodContext(ctx, context, null); runSimpleMethod(xmlResource, methodName, methodContext); return methodContext.getResults(); } - public static Map runSimpleService(String xmlResource, String methodName, DispatchContext ctx, Map context, ClassLoader loader) throws MiniLangException { + public static Map<String, Object> runSimpleService(String xmlResource, String methodName, DispatchContext ctx, Map<String, ? extends Object> context, ClassLoader loader) throws MiniLangException { MethodContext methodContext = new MethodContext(ctx, context, loader); runSimpleMethod(xmlResource, methodName, methodContext); return methodContext.getResults(); } - public static Map runSimpleService(URL xmlURL, String methodName, DispatchContext ctx, Map context, ClassLoader loader) throws MiniLangException { + public static Map<String, Object> runSimpleService(URL xmlURL, String methodName, DispatchContext ctx, Map<String, ? extends Object> context, ClassLoader loader) throws MiniLangException { MethodContext methodContext = new MethodContext(ctx, context, loader); runSimpleMethod(xmlURL, methodName, methodContext); return methodContext.getResults(); @@ -126,8 +127,8 @@ // ----- General Method Invokers ----- public static String runSimpleMethod(String xmlResource, String methodName, MethodContext methodContext) throws MiniLangException { - Map simpleMethods = getSimpleMethods(xmlResource, methodContext.getLoader()); - SimpleMethod simpleMethod = (SimpleMethod) simpleMethods.get(methodName); + Map<String, SimpleMethod> simpleMethods = getSimpleMethods(xmlResource, methodContext.getLoader()); + SimpleMethod simpleMethod = simpleMethods.get(methodName); if (simpleMethod == null) { throw new MiniLangException("Could not find SimpleMethod " + methodName + " in XML document in resource: " + xmlResource); } @@ -135,8 +136,8 @@ } public static String runSimpleMethod(URL xmlURL, String methodName, MethodContext methodContext) throws MiniLangException { - Map simpleMethods = getSimpleMethods(xmlURL); - SimpleMethod simpleMethod = (SimpleMethod) simpleMethods.get(methodName); + Map<String, SimpleMethod> simpleMethods = getSimpleMethods(xmlURL); + SimpleMethod simpleMethod = simpleMethods.get(methodName); if (simpleMethod == null) { throw new MiniLangException("Could not find SimpleMethod " + methodName + " in XML document from URL: " + xmlURL.toString()); } @@ -144,10 +145,10 @@ } public static Map<String, SimpleMethod> getSimpleMethods(String xmlResource, ClassLoader loader) throws MiniLangException { - Map<String, SimpleMethod> simpleMethods = (Map) simpleMethodsResourceCache.get(xmlResource); + Map<String, SimpleMethod> simpleMethods = simpleMethodsResourceCache.get(xmlResource); if (simpleMethods == null) { synchronized (SimpleMethod.class) { - simpleMethods = (Map) simpleMethodsResourceCache.get(xmlResource); + simpleMethods = simpleMethodsResourceCache.get(xmlResource); if (simpleMethods == null) { //URL xmlURL = UtilURL.fromResource(xmlResource, loader); URL xmlURL = null; @@ -172,11 +173,11 @@ } public static Map<String, SimpleMethod> getSimpleMethods(URL xmlURL) throws MiniLangException { - Map<String, SimpleMethod> simpleMethods = (Map) simpleMethodsURLCache.get(xmlURL); + Map<String, SimpleMethod> simpleMethods = simpleMethodsURLCache.get(xmlURL); if (simpleMethods == null) { synchronized (SimpleMethod.class) { - simpleMethods = (Map) simpleMethodsURLCache.get(xmlURL); + simpleMethods = simpleMethodsURLCache.get(xmlURL); if (simpleMethods == null) { simpleMethods = getAllSimpleMethods(xmlURL); @@ -209,12 +210,7 @@ } Element rootElement = document.getDocumentElement(); - List simpleMethodElements = UtilXml.childElementList(rootElement, "simple-method"); - - Iterator simpleMethodIter = simpleMethodElements.iterator(); - - while (simpleMethodIter.hasNext()) { - Element simpleMethodElement = (Element) simpleMethodIter.next(); + for (Element simpleMethodElement: UtilXml.childElementList(rootElement, "simple-method")) { SimpleMethod simpleMethod = new SimpleMethod(simpleMethodElement, simpleMethods, xmlURL.toString()); simpleMethods.put(simpleMethod.getMethodName(), simpleMethod); } @@ -222,12 +218,12 @@ return simpleMethods; } - public static Map getDirectSimpleMethods(String name, String content, String fromLocation) throws MiniLangException { - Map simpleMethods = (Map) simpleMethodsDirectCache.get(name); + public static Map<String, SimpleMethod> getDirectSimpleMethods(String name, String content, String fromLocation) throws MiniLangException { + Map<String, SimpleMethod> simpleMethods = simpleMethodsDirectCache.get(name); if (simpleMethods == null) { synchronized (SimpleMethod.class) { - simpleMethods = (Map) simpleMethodsDirectCache.get(name); + simpleMethods = simpleMethodsDirectCache.get(name); if (simpleMethods == null) { simpleMethods = getAllDirectSimpleMethods(name, content, fromLocation); @@ -240,12 +236,12 @@ return simpleMethods; } - protected static Map getAllDirectSimpleMethods(String name, String content, String fromLocation) throws MiniLangException { + protected static Map<String, SimpleMethod> getAllDirectSimpleMethods(String name, String content, String fromLocation) throws MiniLangException { if (UtilValidate.isEmpty(fromLocation)) { fromLocation = "<location not known>"; } - Map simpleMethods = FastMap.newInstance(); + Map<String, SimpleMethod> simpleMethods = FastMap.newInstance(); // read in the file Document document = null; @@ -267,12 +263,7 @@ } Element rootElement = document.getDocumentElement(); - List simpleMethodElements = UtilXml.childElementList(rootElement, "simple-method"); - - Iterator simpleMethodIter = simpleMethodElements.iterator(); - - while (simpleMethodIter.hasNext()) { - Element simpleMethodElement = (Element) simpleMethodIter.next(); + for (Element simpleMethodElement: UtilXml.childElementList(rootElement, "simple-method")) { SimpleMethod simpleMethod = new SimpleMethod(simpleMethodElement, simpleMethods, fromLocation); simpleMethods.put(simpleMethod.getMethodName(), simpleMethod); } @@ -282,7 +273,7 @@ // Member fields begin here... protected List<MethodOperation> methodOperations = FastList.newInstance(); - protected Map parentSimpleMethodsMap; + protected Map<String, SimpleMethod> parentSimpleMethodsMap; protected String fromLocation; protected String methodName; protected String shortDescription; @@ -318,7 +309,7 @@ protected String dispatcherName; protected String userLoginName; - public SimpleMethod(Element simpleMethodElement, Map parentSimpleMethodsMap, String fromLocation) { + public SimpleMethod(Element simpleMethodElement, Map<String, SimpleMethod> parentSimpleMethodsMap, String fromLocation) { this.parentSimpleMethodsMap = parentSimpleMethodsMap; this.fromLocation = fromLocation; this.methodName = simpleMethodElement.getAttribute("method-name"); @@ -436,7 +427,7 @@ public SimpleMethod getSimpleMethodInSameFile(String simpleMethodName) { if (parentSimpleMethodsMap == null) return null; - return (SimpleMethod) parentSimpleMethodsMap.get(simpleMethodName); + return parentSimpleMethodsMap.get(simpleMethodName); } public String getShortDescription() { @@ -701,7 +692,7 @@ } if (loginRequired) { if (userLogin == null) { - Map messageMap = UtilMisc.toMap("shortDescription", shortDescription); + Map<String, Object> messageMap = UtilMisc.<String, Object>toMap("shortDescription", shortDescription); String errMsg = UtilProperties.getMessage(SimpleMethod.err_resource, "simpleMethod.must_logged_process", messageMap, locale) + "."; if (methodContext.getMethodType() == MethodContext.EVENT) { @@ -752,7 +743,7 @@ String returnValue = null; String response = null; - StringBuffer summaryErrorStringBuffer = new StringBuffer(); + StringBuilder summaryErrorStringBuffer = new StringBuilder(); if (methodContext.getMethodType() == MethodContext.EVENT) { boolean forceError = false; @@ -764,7 +755,7 @@ summaryErrorStringBuffer.append(errorMsg); } - List tempErrorMsgList = (List) methodContext.getEnv(eventErrorMessageListName); + List<Object> tempErrorMsgList = UtilGenerics.checkList(methodContext.getEnv(eventErrorMessageListName)); if (tempErrorMsgList != null && tempErrorMsgList.size() > 0) { methodContext.getRequest().setAttribute("_ERROR_MESSAGE_LIST_", tempErrorMsgList); forceError = true; @@ -777,7 +768,7 @@ if (eventMsg != null && eventMsg.length() > 0) { methodContext.getRequest().setAttribute("_EVENT_MESSAGE_", eventMsg); } - List eventMsgList = (List) methodContext.getEnv(eventEventMessageListName); + List<String> eventMsgList = UtilGenerics.checkList(methodContext.getEnv(eventEventMessageListName)); if (eventMsgList != null && eventMsgList.size() > 0) { methodContext.getRequest().setAttribute("_EVENT_MESSAGE_LIST_", eventMsgList); } @@ -808,7 +799,7 @@ summaryErrorStringBuffer.append(errorMsg); } - List errorMsgList = (List) methodContext.getEnv(serviceErrorMessageListName); + List<Object> errorMsgList = UtilGenerics.checkList(methodContext.getEnv(serviceErrorMessageListName)); if (errorMsgList != null && errorMsgList.size() > 0) { methodContext.putResult(ModelService.ERROR_MESSAGE_LIST, errorMsgList); forceError = true; @@ -817,7 +808,7 @@ summaryErrorStringBuffer.append(errorMsgList.toString()); } - Map errorMsgMap = (Map) methodContext.getEnv(serviceErrorMessageMapName); + Map<String, Object> errorMsgMap = UtilGenerics.checkMap(methodContext.getEnv(serviceErrorMessageMapName)); if (errorMsgMap != null && errorMsgMap.size() > 0) { methodContext.putResult(ModelService.ERROR_MESSAGE_MAP, errorMsgMap); forceError = true; @@ -831,7 +822,7 @@ methodContext.putResult(ModelService.SUCCESS_MESSAGE, successMsg); } - List successMsgList = (List) methodContext.getEnv(serviceSuccessMessageListName); + List<Object> successMsgList = UtilGenerics.checkList(methodContext.getEnv(serviceSuccessMessageListName)); if (successMsgList != null && successMsgList.size() > 0) { methodContext.putResult(ModelService.SUCCESS_MESSAGE_LIST, successMsgList); } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleMethodBsfEngine.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleMethodBsfEngine.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleMethodBsfEngine.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleMethodBsfEngine.java Sun Aug 3 20:00:54 2008 @@ -18,11 +18,12 @@ *******************************************************************************/ package org.ofbiz.minilang; -import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.Vector; +import javolution.util.FastMap; + import org.ofbiz.base.util.Debug; import org.ofbiz.minilang.method.MethodContext; @@ -42,7 +43,7 @@ public static final String module = SimpleMethodBsfEngine.class.getName(); - protected Map context = new HashMap(); + protected Map<String, Object> context = FastMap.newInstance(); public void initialize(BSFManager mgr, String lang, Vector declaredBeans) throws BSFException { super.initialize(mgr, lang, declaredBeans); @@ -87,19 +88,19 @@ if (!(expr instanceof String)) throw new BSFException("simple-method expression must be a string"); //right now only supports one method per file, so get all methods and just run the first... - Map simpleMethods = null; + Map<String, SimpleMethod> simpleMethods = null; try { simpleMethods = SimpleMethod.getDirectSimpleMethods(source, (String) expr, "<bsf source>"); } catch (MiniLangException e) { throw new BSFException("Error loading/parsing simple-method XML source: " + e.getMessage()); } - Set smNames = simpleMethods.keySet(); + Set<String> smNames = simpleMethods.keySet(); if (smNames.size() == 0) throw new BSFException("Did not find any simple-methods in the file"); - String methodName = (String) smNames.iterator().next(); + String methodName = smNames.iterator().next(); if (smNames.size() > 1) Debug.logWarning("Found more than one simple-method in the file, running the [" + methodName + "] method, you should remove all but one method from this file", module); - SimpleMethod simpleMethod = (SimpleMethod) simpleMethods.get(methodName); + SimpleMethod simpleMethod = simpleMethods.get(methodName); MethodContext methodContext = new MethodContext(context, null, MethodContext.EVENT); return simpleMethod.exec(methodContext); //methodContext.getResults(); Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleServiceEngine.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleServiceEngine.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleServiceEngine.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/SimpleServiceEngine.java Sun Aug 3 20:00:54 2008 @@ -39,23 +39,23 @@ /** Run the service synchronously and IGNORE the result * @param context Map of name, value pairs composing the context */ - public void runSyncIgnore(String localName, ModelService modelService, Map context) throws GenericServiceException { - Map result = runSync(localName, modelService, context); + public void runSyncIgnore(String localName, ModelService modelService, Map<String, Object> context) throws GenericServiceException { + Map<String, Object> result = runSync(localName, modelService, context); } /** Run the service synchronously and return the result * @param context Map of name, value pairs composing the context * @return Map of name, value pairs composing the result */ - public Map runSync(String localName, ModelService modelService, Map context) throws GenericServiceException { - Object result = serviceInvoker(localName, modelService, context); - if (result == null || !(result instanceof Map)) + public Map<String, Object> runSync(String localName, ModelService modelService, Map<String, Object> context) throws GenericServiceException { + Map<String, Object> result = serviceInvoker(localName, modelService, context); + if (result == null) throw new GenericServiceException("Service did not return expected result"); - return (Map) result; + return result; } // Invoke the simple method from a service context - private Object serviceInvoker(String localName, ModelService modelService, Map context) throws GenericServiceException { + private Map<String, Object> serviceInvoker(String localName, ModelService modelService, Map<String, ? extends Object> context) throws GenericServiceException { // static java service methods should be: public Map methodName(DispatchContext dctx, Map context) DispatchContext dctx = dispatcher.getLocalContext(localName); Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ContextAccessor.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ContextAccessor.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ContextAccessor.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/ContextAccessor.java Sun Aug 3 20:00:54 2008 @@ -20,6 +20,7 @@ import java.util.Map; +import org.ofbiz.base.util.UtilGenerics; import org.ofbiz.base.util.collections.FlexibleMapAccessor; /** @@ -27,10 +28,10 @@ * accessing sub-map values and the "[]" (square bracket) syntax for accessing * list elements. See individual Map operations for more information. */ -public class ContextAccessor { +public class ContextAccessor<T> { protected String name; - protected FlexibleMapAccessor fma; + protected FlexibleMapAccessor<T> fma; protected boolean needsExpand; protected boolean empty; @@ -51,7 +52,7 @@ if (name == null || name.length() == 0) { empty = true; needsExpand = false; - fma = new FlexibleMapAccessor(name); + fma = new FlexibleMapAccessor<T>(name); } else { empty = false; int openPos = name.indexOf("${"); @@ -59,7 +60,7 @@ fma = null; needsExpand = true; } else { - fma = new FlexibleMapAccessor(name); + fma = new FlexibleMapAccessor<T>(name); needsExpand = false; } } @@ -70,11 +71,11 @@ } /** Based on name get from Map or from List in Map */ - public Object get(MethodContext methodContext) { + public T get(MethodContext methodContext) { if (this.needsExpand) { - return methodContext.getEnv(name); + return UtilGenerics.<T>cast(methodContext.getEnv(name)); } else { - return methodContext.getEnv(fma); + return UtilGenerics.<T>cast(methodContext.getEnv(fma)); } } @@ -84,7 +85,7 @@ * If a "+" (plus sign) is included inside the square brackets before the index * number the value will inserted/added at that point instead of set at the point. */ - public void put(MethodContext methodContext, Object value) { + public void put(MethodContext methodContext, T value) { if (this.needsExpand) { methodContext.putEnv(name, value); } else { @@ -93,18 +94,18 @@ } /** Based on name remove from Map or from List in Map */ - public Object remove(MethodContext methodContext) { + public T remove(MethodContext methodContext) { if (this.needsExpand) { - return methodContext.removeEnv(name); + return UtilGenerics.<T>cast(methodContext.removeEnv(name)); } else { - return methodContext.removeEnv(fma); + return UtilGenerics.<T>cast(methodContext.removeEnv(fma)); } } /** Based on name get from Map or from List in Map */ - public Object get(Map theMap, MethodContext methodContext) { + public T get(Map<String, ? extends Object> theMap, MethodContext methodContext) { if (this.needsExpand) { - FlexibleMapAccessor fma = new FlexibleMapAccessor(methodContext.expandString(name)); + FlexibleMapAccessor<T> fma = new FlexibleMapAccessor<T>(methodContext.expandString(name)); return fma.get(theMap); } else { return fma.get(theMap); @@ -117,9 +118,9 @@ * If a "+" (plus sign) is included inside the square brackets before the index * number the value will inserted/added at that point instead of set at the point. */ - public void put(Map theMap, Object value, MethodContext methodContext) { + public void put(Map<String, Object> theMap, T value, MethodContext methodContext) { if (this.needsExpand) { - FlexibleMapAccessor fma = new FlexibleMapAccessor(methodContext.expandString(name)); + FlexibleMapAccessor<T> fma = new FlexibleMapAccessor<T>(methodContext.expandString(name)); fma.put(theMap, value); } else { fma.put(theMap, value); @@ -127,9 +128,9 @@ } /** Based on name remove from Map or from List in Map */ - public Object remove(Map theMap, MethodContext methodContext) { + public T remove(Map<String, ? extends Object> theMap, MethodContext methodContext) { if (this.needsExpand) { - FlexibleMapAccessor fma = new FlexibleMapAccessor(methodContext.expandString(name)); + FlexibleMapAccessor<T> fma = new FlexibleMapAccessor<T>(methodContext.expandString(name)); return fma.remove(theMap); } else { return fma.remove(theMap); Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/FieldObject.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/FieldObject.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/FieldObject.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/FieldObject.java Sun Aug 3 20:00:54 2008 @@ -27,18 +27,18 @@ /** * A type of MethodObject that represents an Object value in a certain location */ -public class FieldObject extends MethodObject { +public class FieldObject<T> extends MethodObject<T> { public static final String module = FieldObject.class.getName(); - ContextAccessor fieldAcsr; - ContextAccessor mapAcsr; + ContextAccessor<T> fieldAcsr; + ContextAccessor<Map<String, ? extends Object>> mapAcsr; String type; public FieldObject(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); - fieldAcsr = new ContextAccessor(element.getAttribute("field-name")); - mapAcsr = new ContextAccessor(element.getAttribute("map-name")); + fieldAcsr = new ContextAccessor<T>(element.getAttribute("field-name")); + mapAcsr = new ContextAccessor<Map<String, ? extends Object>>(element.getAttribute("map-name")); type = element.getAttribute("type"); if (UtilValidate.isEmpty(type)) { type = "String"; @@ -50,20 +50,20 @@ return type; } - public Class getTypeClass(ClassLoader loader) { + public Class<T> getTypeClass(ClassLoader loader) { try { - return ObjectType.loadClass(type, loader); + return UtilGenerics.cast(ObjectType.loadClass(type, loader)); } catch (ClassNotFoundException e) { Debug.logError(e, "Could not find class for type: " + type, module); return null; } } - public Object getObject(MethodContext methodContext) { - Object fieldVal = null; + public T getObject(MethodContext methodContext) { + T fieldVal = null; if (!mapAcsr.isEmpty()) { - Map fromMap = (Map) mapAcsr.get(methodContext); + Map<String, ? extends Object> fromMap = mapAcsr.get(methodContext); if (fromMap == null) { Debug.logWarning("Map not found with name " + mapAcsr + ", not getting Object value, returning null.", module); return null; Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/FieldString.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/FieldString.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/FieldString.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/FieldString.java Sun Aug 3 20:00:54 2008 @@ -31,19 +31,19 @@ public static final String module = FieldString.class.getName(); - ContextAccessor fieldAcsr; - ContextAccessor mapAcsr; + ContextAccessor<Object> fieldAcsr; + ContextAccessor<Map<String, ? extends Object>> mapAcsr; public FieldString(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); - fieldAcsr = new ContextAccessor(element.getAttribute("field-name")); - mapAcsr = new ContextAccessor(element.getAttribute("map-name")); + fieldAcsr = new ContextAccessor<Object>(element.getAttribute("field-name")); + mapAcsr = new ContextAccessor<Map<String, ? extends Object>>(element.getAttribute("map-name")); } public String getString(MethodContext methodContext) { Object fieldVal = null; if (!mapAcsr.isEmpty()) { - Map fromMap = (Map) mapAcsr.get(methodContext); + Map<String, ? extends Object> fromMap = mapAcsr.get(methodContext); if (fromMap == null) { Debug.logWarning("Map not found with name " + mapAcsr + ", not getting string value", module); return ""; Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MethodContext.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MethodContext.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MethodContext.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MethodContext.java Sun Aug 3 20:00:54 2008 @@ -18,15 +18,18 @@ *******************************************************************************/ package org.ofbiz.minilang.method; -import java.util.HashMap; import java.util.Iterator; import java.util.Locale; import java.util.Map; +import java.util.Map; import java.util.TimeZone; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javolution.util.FastMap; + +import org.ofbiz.base.util.UtilMisc; import org.ofbiz.base.util.UtilHttp; import org.ofbiz.base.util.collections.FlexibleMapAccessor; import org.ofbiz.base.util.string.FlexibleStringExpander; @@ -40,15 +43,15 @@ /** * A single operation, does the specified operation on the given field */ -public class MethodContext { +public class MethodContext implements Iterable<Map.Entry<String, Object>> { public static final int EVENT = 1; public static final int SERVICE = 2; protected int methodType; - protected Map<String, Object> env = new HashMap<String, Object>(); - protected Map parameters; + protected Map<String, Object> env = FastMap.newInstance(); + protected Map<String, Object> parameters; protected Locale locale; protected TimeZone timeZone; protected ClassLoader loader; @@ -85,16 +88,16 @@ } } - public MethodContext(DispatchContext ctx, Map context, ClassLoader loader) { + public MethodContext(DispatchContext ctx, Map<String, ? extends Object> context, ClassLoader loader) { this.methodType = MethodContext.SERVICE; - this.parameters = context; + this.parameters = UtilMisc.makeMapWritable(context); this.loader = loader; this.locale = (Locale) context.get("locale"); this.timeZone = (TimeZone) context.get("timeZone"); this.dispatcher = ctx.getDispatcher(); this.delegator = ctx.getDelegator(); this.security = ctx.getSecurity(); - this.results = new HashMap<String, Object>(); + this.results = FastMap.newInstance(); this.userLogin = (GenericValue) context.get("userLogin"); if (this.loader == null) { @@ -111,9 +114,9 @@ * delegator, security, request, response, etc) are in the context. * Will result in calling method as a service or event, as specified. */ - public MethodContext(Map context, ClassLoader loader, int methodType) { + public MethodContext(Map<String, ? extends Object> context, ClassLoader loader, int methodType) { this.methodType = methodType; - this.parameters = context; + this.parameters = UtilMisc.makeMapWritable(context); this.loader = loader; this.locale = (Locale) context.get("locale"); this.timeZone = (TimeZone) context.get("timeZone"); @@ -138,7 +141,7 @@ if (this.userLogin == null) this.userLogin = (GenericValue) this.request.getSession().getAttribute("userLogin"); } } else if (methodType == MethodContext.SERVICE) { - this.results = new HashMap<String, Object>(); + this.results = FastMap.newInstance(); } if (this.loader == null) { @@ -164,7 +167,7 @@ return this.methodType; } - public Map getEnvMap() { + public Map<String, Object> getEnvMap() { return this.env; } @@ -175,12 +178,12 @@ * @param key The name of the environment value to get. Can contain "." and "[]" syntax elements as described above. * @return The environment value if found, otherwise null. */ - public Object getEnv(String key) { + public <T> T getEnv(String key) { String ekey = this.expandString(key); - FlexibleMapAccessor fma = new FlexibleMapAccessor(ekey); + FlexibleMapAccessor<T> fma = new FlexibleMapAccessor<T>(ekey); return this.getEnv(fma); } - public Object getEnv(FlexibleMapAccessor fma) { + public <T> T getEnv(FlexibleMapAccessor<T> fma) { return fma.get(this.env); } @@ -196,23 +199,21 @@ * @param key The name of the environment value to get. Can contain "." syntax elements as described above. * @param value The value to set in the named environment location. */ - public void putEnv(String key, Object value) { + public <T> void putEnv(String key, T value) { String ekey = this.expandString(key); - FlexibleMapAccessor fma = new FlexibleMapAccessor(ekey); + FlexibleMapAccessor<T> fma = new FlexibleMapAccessor<T>(ekey); this.putEnv(fma, value); } - public void putEnv(FlexibleMapAccessor fma, Object value) { + public <T> void putEnv(FlexibleMapAccessor<T> fma, T value) { fma.put(this.env, value); } /** Calls putEnv for each entry in the Map, thus allowing for the additional flexibility in naming * supported in that method. */ - public void putAllEnv(Map values) { - Iterator viter = values.entrySet().iterator(); - while (viter.hasNext()) { - Map.Entry entry = (Map.Entry) viter.next(); - this.putEnv((String) entry.getKey(), entry.getValue()); + public void putAllEnv(Map<String, ? extends Object> values) { + for (Map.Entry<String, ? extends Object> entry: values.entrySet()) { + this.putEnv(entry.getKey(), entry.getValue()); } } @@ -222,16 +223,20 @@ * * @param key The name of the environment value to get. Can contain "." syntax elements as described above. */ - public Object removeEnv(String key) { + public <T> T removeEnv(String key) { String ekey = this.expandString(key); - FlexibleMapAccessor fma = new FlexibleMapAccessor(ekey); + FlexibleMapAccessor<T> fma = new FlexibleMapAccessor<T>(ekey); return this.removeEnv(fma); } - public Object removeEnv(FlexibleMapAccessor fma) { + public <T> T removeEnv(FlexibleMapAccessor<T> fma) { return fma.remove(this.env); } - public Iterator getEnvEntryIterator() { + public Iterator<Map.Entry<String, Object>> iterator() { + return this.env.entrySet().iterator(); + } + + public Iterator<Map.Entry<String, Object>> getEnvEntryIterator() { return this.env.entrySet().iterator(); } @@ -243,7 +248,7 @@ this.parameters.put(key, value); } - public Map getParameters() { + public Map<String, Object> getParameters() { return this.parameters; } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MethodObject.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MethodObject.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MethodObject.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MethodObject.java Sun Aug 3 20:00:54 2008 @@ -24,7 +24,7 @@ /** * A single Object value to be used as a parameter or whatever */ -public abstract class MethodObject { +public abstract class MethodObject<T> { protected SimpleMethod simpleMethod; @@ -36,8 +36,8 @@ public abstract String getTypeName(); /** Get the Class for the type of the object */ - public abstract Class getTypeClass(ClassLoader loader); + public abstract Class<T> getTypeClass(ClassLoader loader); /** Get the Object value */ - public abstract Object getObject(MethodContext methodContext); + public abstract T getObject(MethodContext methodContext); } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/StringObject.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/StringObject.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/StringObject.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/StringObject.java Sun Aug 3 20:00:54 2008 @@ -26,7 +26,7 @@ /** * A type of MethodObject that represents a String constant value to be used as an Object */ -public class StringObject extends MethodObject { +public class StringObject extends MethodObject<String> { String value; String cdataValue; @@ -42,11 +42,11 @@ return "java.lang.String"; } - public Class getTypeClass(ClassLoader loader) { + public Class<String> getTypeClass(ClassLoader loader) { return java.lang.String.class; } - public Object getObject(MethodContext methodContext) { + public String getObject(MethodContext methodContext) { String value = methodContext.expandString(this.value); String cdataValue = methodContext.expandString(this.cdataValue); Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/AddError.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/AddError.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/AddError.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/AddError.java Sun Aug 3 20:00:54 2008 @@ -20,6 +20,8 @@ import java.util.*; +import javolution.util.FastList; + import org.w3c.dom.*; import org.ofbiz.base.util.*; import org.ofbiz.minilang.*; @@ -33,11 +35,11 @@ String propertyResource = null; boolean isProperty = false; - ContextAccessor errorListAcsr; + ContextAccessor<List<Object>> errorListAcsr; public AddError(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); - errorListAcsr = new ContextAccessor(element.getAttribute("error-list-name"), "error_list"); + errorListAcsr = new ContextAccessor<List<Object>>(element.getAttribute("error-list-name"), "error_list"); Element failMessage = UtilXml.firstChildElement(element, "fail-message"); Element failProperty = UtilXml.firstChildElement(element, "fail-property"); @@ -54,9 +56,9 @@ public boolean exec(MethodContext methodContext) { - List messages = (List) errorListAcsr.get(methodContext); + List<Object> messages = errorListAcsr.get(methodContext); if (messages == null) { - messages = new LinkedList(); + messages = FastList.newInstance(); errorListAcsr.put(methodContext, messages); } @@ -64,7 +66,7 @@ return true; } - public void addMessage(List messages, ClassLoader loader, MethodContext methodContext) { + public void addMessage(List<Object> messages, ClassLoader loader, MethodContext methodContext) { String message = methodContext.expandString(this.message); String propertyResource = methodContext.expandString(this.propertyResource); Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallBsh.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallBsh.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallBsh.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallBsh.java Sun Aug 3 20:00:54 2008 @@ -21,6 +21,8 @@ import java.io.*; import java.util.*; +import javolution.util.FastList; + import org.w3c.dom.*; import org.ofbiz.base.util.*; import org.ofbiz.minilang.*; @@ -39,23 +41,23 @@ String inline = null; String resource = null; - ContextAccessor errorListAcsr; + ContextAccessor<List<Object>> errorListAcsr; public CallBsh(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); inline = UtilXml.elementValue(element); resource = element.getAttribute("resource"); - errorListAcsr = new ContextAccessor(element.getAttribute("error-list-name"), "error_list"); + errorListAcsr = new ContextAccessor<List<Object>>(element.getAttribute("error-list-name"), "error_list"); if (inline != null && inline.length() > 0) {// pre-parse/compile inlined bsh, only accessed here } } public boolean exec(MethodContext methodContext) { - List messages = (List) errorListAcsr.get(methodContext); + List<Object> messages = errorListAcsr.get(methodContext); if (messages == null) { - messages = new LinkedList(); + messages = FastList.newInstance(); errorListAcsr.put(methodContext, messages); } @@ -64,11 +66,8 @@ try { // setup environment - Iterator envEntries = methodContext.getEnvEntryIterator(); - - while (envEntries.hasNext()) { - Map.Entry entry = (Map.Entry) envEntries.next(); - bsh.set((String) entry.getKey(), entry.getValue()); + for (Map.Entry<String, Object> entry: methodContext) { + bsh.set(entry.getKey(), entry.getValue()); } // run external, from resource, first if resource specified @@ -81,7 +80,7 @@ } else { try { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); - StringBuffer outSb = new StringBuffer(); + StringBuilder outSb = new StringBuilder(); String tempStr = null; @@ -94,7 +93,7 @@ // if map is returned, copy values into env if ((resourceResult != null) && (resourceResult instanceof Map)) { - methodContext.putAllEnv((Map) resourceResult); + methodContext.putAllEnv(UtilGenerics.<String, Object>checkMap(resourceResult)); } } catch (IOException e) { messages.add("IO error loading bsh resource: " + e.getMessage()); @@ -109,7 +108,7 @@ // if map is returned, copy values into env if ((inlineResult != null) && (inlineResult instanceof Map)) { - methodContext.putAllEnv((Map) inlineResult); + methodContext.putAllEnv(UtilGenerics.<String, Object>checkMap(inlineResult)); } } catch (EvalError e) { Debug.logError(e, "BeanShell execution caused an error", module); Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallClassMethod.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallClassMethod.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallClassMethod.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallClassMethod.java Sun Aug 3 20:00:54 2008 @@ -21,6 +21,8 @@ import java.util.*; +import javolution.util.FastList; + import org.w3c.dom.*; import org.ofbiz.base.util.*; @@ -36,31 +38,29 @@ String className; String methodName; - ContextAccessor retFieldAcsr; - ContextAccessor retMapAcsr; + ContextAccessor<Object> retFieldAcsr; + ContextAccessor<Map<String, Object>> retMapAcsr; /** A list of MethodObject objects to use as the method call parameters */ - List parameters; + List<MethodObject<?>> parameters; public CallClassMethod(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); className = element.getAttribute("class-name"); methodName = element.getAttribute("method-name"); - retFieldAcsr = new ContextAccessor(element.getAttribute("ret-field-name")); - retMapAcsr = new ContextAccessor(element.getAttribute("ret-map-name")); + retFieldAcsr = new ContextAccessor<Object>(element.getAttribute("ret-field-name")); + retMapAcsr = new ContextAccessor<Map<String, Object>>(element.getAttribute("ret-map-name")); - List parameterElements = UtilXml.childElementList(element); + List<? extends Element> parameterElements = UtilXml.childElementList(element); if (parameterElements.size() > 0) { - parameters = new ArrayList(parameterElements.size()); + parameters = FastList.newInstance(); - Iterator parameterIter = parameterElements.iterator(); - while (parameterIter.hasNext()) { - Element parameterElement = (Element) parameterIter.next(); - MethodObject methodObject = null; + for (Element parameterElement: parameterElements) { + MethodObject<?> methodObject = null; if ("string".equals(parameterElement.getNodeName())) { methodObject = new StringObject(parameterElement, simpleMethod); } else if ("field".equals(parameterElement.getNodeName())) { - methodObject = new FieldObject(parameterElement, simpleMethod); + methodObject = new FieldObject<Object>(parameterElement, simpleMethod); } else { //whoops, invalid tag here, print warning Debug.logWarning("Found an unsupported tag under the call-object-method tag: " + parameterElement.getNodeName() + "; ignoring", module); @@ -76,7 +76,7 @@ String className = methodContext.expandString(this.className); String methodName = methodContext.expandString(this.methodName); - Class methodClass = null; + Class<?> methodClass = null; try { methodClass = ObjectType.loadClass(className, methodContext.getLoader()); } catch (ClassNotFoundException e) { Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallObjectMethod.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallObjectMethod.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallObjectMethod.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallObjectMethod.java Sun Aug 3 20:00:54 2008 @@ -21,6 +21,9 @@ import java.lang.reflect.*; import java.util.*; +import javolution.util.FastList; +import javolution.util.FastMap; + import org.w3c.dom.*; import org.ofbiz.base.util.*; @@ -34,35 +37,33 @@ public static final String module = CallClassMethod.class.getName(); - ContextAccessor objFieldAcsr; - ContextAccessor objMapAcsr; + ContextAccessor<Object> objFieldAcsr; + ContextAccessor<Map<String, ? extends Object>> objMapAcsr; String methodName; - ContextAccessor retFieldAcsr; - ContextAccessor retMapAcsr; + ContextAccessor<Object> retFieldAcsr; + ContextAccessor<Map<String, Object>> retMapAcsr; /** A list of MethodObject objects to use as the method call parameters */ - List parameters; + List<MethodObject<?>> parameters; public CallObjectMethod(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); - objFieldAcsr = new ContextAccessor(element.getAttribute("obj-field-name")); - objMapAcsr = new ContextAccessor(element.getAttribute("obj-map-name")); + objFieldAcsr = new ContextAccessor<Object>(element.getAttribute("obj-field-name")); + objMapAcsr = new ContextAccessor<Map<String, ? extends Object>>(element.getAttribute("obj-map-name")); methodName = element.getAttribute("method-name"); - retFieldAcsr = new ContextAccessor(element.getAttribute("ret-field-name")); - retMapAcsr = new ContextAccessor(element.getAttribute("ret-map-name")); + retFieldAcsr = new ContextAccessor<Object>(element.getAttribute("ret-field-name")); + retMapAcsr = new ContextAccessor<Map<String, Object>>(element.getAttribute("ret-map-name")); - List parameterElements = UtilXml.childElementList(element); + List<? extends Element> parameterElements = UtilXml.childElementList(element); if (parameterElements.size() > 0) { - parameters = new ArrayList(parameterElements.size()); + parameters = FastList.newInstance(); - Iterator parameterIter = parameterElements.iterator(); - while (parameterIter.hasNext()) { - Element parameterElement = (Element) parameterIter.next(); + for (Element parameterElement: parameterElements) { MethodObject methodObject = null; if ("string".equals(parameterElement.getNodeName())) { methodObject = new StringObject(parameterElement, simpleMethod); } else if ("field".equals(parameterElement.getNodeName())) { - methodObject = new FieldObject(parameterElement, simpleMethod); + methodObject = new FieldObject<Object>(parameterElement, simpleMethod); } else { //whoops, invalid tag here, print warning Debug.logWarning("Found an unsupported tag under the call-object-method tag: " + parameterElement.getNodeName() + "; ignoring", module); @@ -79,7 +80,7 @@ Object methodObject = null; if (!objMapAcsr.isEmpty()) { - Map fromMap = (Map) objMapAcsr.get(methodContext); + Map<String, ? extends Object> fromMap = objMapAcsr.get(methodContext); if (fromMap == null) { Debug.logWarning("Map not found with name " + objMapAcsr + ", which should contain the object to execute a method on; not executing method, rerturning error.", module); @@ -101,25 +102,23 @@ return false; } - Class methodClass = methodObject.getClass(); + Class<?> methodClass = methodObject.getClass(); return CallObjectMethod.callMethod(simpleMethod, methodContext, parameters, methodClass, methodObject, methodName, retFieldAcsr, retMapAcsr); } - public static boolean callMethod(SimpleMethod simpleMethod, MethodContext methodContext, List parameters, Class methodClass, Object methodObject, String methodName, ContextAccessor retFieldAcsr, ContextAccessor retMapAcsr) { + public static boolean callMethod(SimpleMethod simpleMethod, MethodContext methodContext, List<MethodObject<?>> parameters, Class<?> methodClass, Object methodObject, String methodName, ContextAccessor<Object> retFieldAcsr, ContextAccessor<Map<String, Object>> retMapAcsr) { Object[] args = null; - Class[] parameterTypes = null; + Class<?>[] parameterTypes = null; if (parameters != null) { args = new Object[parameters.size()]; - parameterTypes = new Class[parameters.size()]; + parameterTypes = new Class<?>[parameters.size()]; - Iterator parameterIter = parameters.iterator(); int i = 0; - while (parameterIter.hasNext()) { - MethodObject methodObjectDef = (MethodObject) parameterIter.next(); + for (MethodObject<?> methodObjectDef: parameters) { args[i] = methodObjectDef.getObject(methodContext); - Class typeClass = methodObjectDef.getTypeClass(methodContext.getLoader()); + Class<?> typeClass = methodObjectDef.getTypeClass(methodContext.getLoader()); if (typeClass == null) { String errMsg = "ERROR: Could not complete the " + simpleMethod.getShortDescription() + " process [Parameter type not found with name " + methodObjectDef.getTypeName() + "]"; Debug.logError(errMsg, module); @@ -140,10 +139,10 @@ //if retFieldAcsr is empty, ignore return value if (!retFieldAcsr.isEmpty()) { if (!retMapAcsr.isEmpty()) { - Map retMap = (Map) retMapAcsr.get(methodContext); + Map<String, Object> retMap = retMapAcsr.get(methodContext); if (retMap == null) { - retMap = new HashMap(); + retMap = FastMap.newInstance(); retMapAcsr.put(methodContext, retMap); } retFieldAcsr.put(retMap, retValue, methodContext); Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallService.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallService.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallService.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallService.java Sun Aug 3 20:00:54 2008 @@ -29,6 +29,7 @@ import javolution.util.FastMap; import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.UtilMisc; import org.ofbiz.base.util.UtilValidate; import org.ofbiz.base.util.UtilXml; import org.ofbiz.base.util.collections.FlexibleServletAccessor; @@ -50,7 +51,7 @@ public static final String module = CallService.class.getName(); protected String serviceName; - protected ContextAccessor inMapAcsr; + protected ContextAccessor<Map<String, Object>> inMapAcsr; protected String includeUserLoginStr; protected String breakOnErrorStr; protected String errorCode; @@ -76,18 +77,18 @@ protected List<ResultToFieldDef> resultToField = FastList.newInstance(); /** the key is the request attribute name, the value is the result name to get */ - protected Map<FlexibleServletAccessor, ContextAccessor> resultToRequest = FastMap.newInstance(); + protected Map<FlexibleServletAccessor<Object>, ContextAccessor<Object>> resultToRequest = FastMap.newInstance(); /** the key is the session attribute name, the value is the result name to get */ - protected Map<FlexibleServletAccessor, ContextAccessor> resultToSession = FastMap.newInstance(); + protected Map<FlexibleServletAccessor<Object>, ContextAccessor<Object>> resultToSession = FastMap.newInstance(); /** the key is the result entry name, the value is the result name to get */ - protected Map<ContextAccessor, ContextAccessor> resultToResult = FastMap.newInstance(); + protected Map<ContextAccessor<Object>, ContextAccessor<Object>> resultToResult = FastMap.newInstance(); public CallService(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); serviceName = element.getAttribute("service-name"); - inMapAcsr = new ContextAccessor(element.getAttribute("in-map-name")); + inMapAcsr = new ContextAccessor<Map<String, Object>>(element.getAttribute("in-map-name")); includeUserLoginStr = element.getAttribute("include-user-login"); breakOnErrorStr = element.getAttribute("break-on-error"); errorCode = element.getAttribute("error-code"); @@ -117,61 +118,50 @@ messageSuffix = new FlexibleMessage(UtilXml.firstChildElement(element, "message-suffix"), "service.message.suffix"); defaultMessage = new FlexibleMessage(UtilXml.firstChildElement(element, "default-message"), "service.default.message"); - List resultsToMapElements = UtilXml.childElementList(element, "results-to-map"); + List<? extends Element> resultsToMapElements = UtilXml.childElementList(element, "results-to-map"); if (resultsToMapElements != null && resultsToMapElements.size() > 0) { - Iterator iter = resultsToMapElements.iterator(); - while (iter.hasNext()) { - Element resultsToMapElement = (Element) iter.next(); - + for (Element resultsToMapElement: resultsToMapElements) { resultsToMap.add(resultsToMapElement.getAttribute("map-name")); } } - List resultToFieldElements = UtilXml.childElementList(element, "result-to-field"); + List<? extends Element> resultToFieldElements = UtilXml.childElementList(element, "result-to-field"); if (resultToFieldElements != null && resultToFieldElements.size() > 0) { - Iterator iter = resultToFieldElements.iterator(); - while (iter.hasNext()) { - Element resultToFieldElement = (Element) iter.next(); + for (Element resultToFieldElement: resultToFieldElements) { ResultToFieldDef rtfDef = new ResultToFieldDef(); rtfDef.resultName = resultToFieldElement.getAttribute("result-name"); - rtfDef.mapAcsr = new ContextAccessor(resultToFieldElement.getAttribute("map-name")); - rtfDef.fieldAcsr = new ContextAccessor(resultToFieldElement.getAttribute("field-name"), rtfDef.resultName); + rtfDef.mapAcsr = new ContextAccessor<Map<String, Object>>(resultToFieldElement.getAttribute("map-name")); + rtfDef.fieldAcsr = new ContextAccessor<Object>(resultToFieldElement.getAttribute("field-name"), rtfDef.resultName); resultToField.add(rtfDef); } } // get result-to-request and result-to-session sub-ops - List resultToRequestElements = UtilXml.childElementList(element, "result-to-request"); + List<? extends Element> resultToRequestElements = UtilXml.childElementList(element, "result-to-request"); if (resultToRequestElements != null && resultToRequestElements.size() > 0) { - Iterator iter = resultToRequestElements.iterator(); - while (iter.hasNext()) { - Element resultToRequestElement = (Element) iter.next(); - FlexibleServletAccessor reqAcsr = new FlexibleServletAccessor(resultToRequestElement.getAttribute("request-name"), resultToRequestElement.getAttribute("result-name")); - ContextAccessor resultAcsr = new ContextAccessor(resultToRequestElement.getAttribute("result-name")); + for (Element resultToRequestElement: resultToRequestElements) { + FlexibleServletAccessor<Object> reqAcsr = new FlexibleServletAccessor<Object>(resultToRequestElement.getAttribute("request-name"), resultToRequestElement.getAttribute("result-name")); + ContextAccessor<Object> resultAcsr = new ContextAccessor<Object>(resultToRequestElement.getAttribute("result-name")); resultToRequest.put(reqAcsr, resultAcsr); } } - List resultToSessionElements = UtilXml.childElementList(element, "result-to-session"); + List<? extends Element> resultToSessionElements = UtilXml.childElementList(element, "result-to-session"); if (resultToSessionElements != null && resultToSessionElements.size() > 0) { - Iterator iter = resultToSessionElements.iterator(); - while (iter.hasNext()) { - Element resultToSessionElement = (Element) iter.next(); - FlexibleServletAccessor sesAcsr = new FlexibleServletAccessor(resultToSessionElement.getAttribute("session-name"), resultToSessionElement.getAttribute("result-name")); - ContextAccessor resultAcsr = new ContextAccessor(resultToSessionElement.getAttribute("result-name")); + for (Element resultToSessionElement: resultToSessionElements) { + FlexibleServletAccessor<Object> sesAcsr = new FlexibleServletAccessor<Object>(resultToSessionElement.getAttribute("session-name"), resultToSessionElement.getAttribute("result-name")); + ContextAccessor<Object> resultAcsr = new ContextAccessor<Object>(resultToSessionElement.getAttribute("result-name")); resultToSession.put(sesAcsr, resultAcsr); } } - List resultToResultElements = UtilXml.childElementList(element, "result-to-result"); + List<? extends Element> resultToResultElements = UtilXml.childElementList(element, "result-to-result"); if (resultToResultElements != null && resultToResultElements.size() > 0) { - Iterator iter = resultToResultElements.iterator(); - while (iter.hasNext()) { - Element resultToResultElement = (Element) iter.next(); - ContextAccessor serResAcsr = new ContextAccessor(resultToResultElement.getAttribute("service-result-name"), resultToResultElement.getAttribute("result-name")); - ContextAccessor resultAcsr = new ContextAccessor(resultToResultElement.getAttribute("result-name")); + for (Element resultToResultElement: resultToResultElements) { + ContextAccessor<Object> serResAcsr = new ContextAccessor<Object>(resultToResultElement.getAttribute("service-result-name"), resultToResultElement.getAttribute("result-name")); + ContextAccessor<Object> resultAcsr = new ContextAccessor<Object>(resultToResultElement.getAttribute("result-name")); resultToResult.put(serResAcsr, resultAcsr); } } @@ -190,13 +180,13 @@ String errorCode = methodContext.expandString(this.errorCode); String successCode = methodContext.expandString(this.successCode); - Map inMap = null; + Map<String, Object> inMap = null; if (inMapAcsr.isEmpty()) { - inMap = new HashMap(); + inMap = FastMap.newInstance(); } else { - inMap = (Map) inMapAcsr.get(methodContext); + inMap = inMapAcsr.get(methodContext); if (inMap == null) { - inMap = new HashMap(); + inMap = FastMap.newInstance(); inMapAcsr.put(methodContext, inMap); } } @@ -213,7 +203,7 @@ } // invoke the service - Map result = null; + Map<String, Object> result = null; // add UserLogin to context if expected if (includeUserLogin) { @@ -259,21 +249,17 @@ } if (resultsToMap.size() > 0) { - Iterator iter = resultsToMap.iterator(); - while (iter.hasNext()) { - String mapName = (String) iter.next(); - methodContext.putEnv(mapName, new HashMap(result)); + for (String mapName: resultsToMap) { + methodContext.putEnv(mapName, UtilMisc.makeMapWritable(result)); } } if (resultToField.size() > 0) { - Iterator iter = resultToField.iterator(); - while (iter.hasNext()) { - ResultToFieldDef rtfDef = (ResultToFieldDef) iter.next(); + for (ResultToFieldDef rtfDef: resultToField) { if (!rtfDef.mapAcsr.isEmpty()) { - Map tempMap = (Map) rtfDef.mapAcsr.get(methodContext); + Map<String, Object> tempMap = rtfDef.mapAcsr.get(methodContext); if (tempMap == null) { - tempMap = new HashMap(); + tempMap = FastMap.newInstance(); rtfDef.mapAcsr.put(methodContext, tempMap); } rtfDef.fieldAcsr.put(tempMap, result.get(rtfDef.resultName), methodContext); @@ -286,21 +272,17 @@ // only run this if it is in an EVENT context if (methodContext.getMethodType() == MethodContext.EVENT) { if (resultToRequest.size() > 0) { - Iterator iter = resultToRequest.entrySet().iterator(); - while (iter.hasNext()) { - Map.Entry entry = (Map.Entry) iter.next(); - FlexibleServletAccessor requestAcsr = (FlexibleServletAccessor) entry.getKey(); - ContextAccessor resultAcsr = (ContextAccessor) entry.getValue(); + for (Map.Entry<FlexibleServletAccessor<Object>, ContextAccessor<Object>> entry: resultToRequest.entrySet()) { + FlexibleServletAccessor<Object> requestAcsr = entry.getKey(); + ContextAccessor<Object> resultAcsr = entry.getValue(); requestAcsr.put(methodContext.getRequest(), resultAcsr.get(result, methodContext), methodContext.getEnvMap()); } } if (resultToSession.size() > 0) { - Iterator iter = resultToSession.entrySet().iterator(); - while (iter.hasNext()) { - Map.Entry entry = (Map.Entry) iter.next(); - FlexibleServletAccessor sessionAcsr = (FlexibleServletAccessor) entry.getKey(); - ContextAccessor resultAcsr = (ContextAccessor) entry.getValue(); + for (Map.Entry<FlexibleServletAccessor<Object>, ContextAccessor<Object>> entry: resultToSession.entrySet()) { + FlexibleServletAccessor<Object> sessionAcsr = entry.getKey(); + ContextAccessor<Object> resultAcsr = entry.getValue(); sessionAcsr.put(methodContext.getRequest().getSession(), resultAcsr.get(result, methodContext), methodContext.getEnvMap()); } } @@ -309,11 +291,9 @@ // only run this if it is in an SERVICE context if (methodContext.getMethodType() == MethodContext.SERVICE) { if (resultToResult.size() > 0) { - Iterator iter = resultToResult.entrySet().iterator(); - while (iter.hasNext()) { - Map.Entry entry = (Map.Entry) iter.next(); - ContextAccessor targetResultAcsr = (ContextAccessor) entry.getKey(); - ContextAccessor resultAcsr = (ContextAccessor) entry.getValue(); + for (Map.Entry<ContextAccessor<Object>, ContextAccessor<Object>> entry: resultToResult.entrySet()) { + ContextAccessor<Object> targetResultAcsr = entry.getKey(); + ContextAccessor<Object> resultAcsr = entry.getValue(); targetResultAcsr.put(methodContext.getResults(), resultAcsr.get(result, methodContext), methodContext); } } @@ -380,7 +360,7 @@ public static class ResultToFieldDef { public String resultName; - public ContextAccessor mapAcsr; - public ContextAccessor fieldAcsr; + public ContextAccessor<Map<String, Object>> mapAcsr; + public ContextAccessor<Object> fieldAcsr; } } Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallServiceAsynch.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallServiceAsynch.java?rev=682246&r1=682245&r2=682246&view=diff ============================================================================== --- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallServiceAsynch.java (original) +++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/callops/CallServiceAsynch.java Sun Aug 3 20:00:54 2008 @@ -18,10 +18,11 @@ *******************************************************************************/ package org.ofbiz.minilang.method.callops; -import java.util.HashMap; import java.util.Locale; import java.util.Map; +import javolution.util.FastMap; + import org.ofbiz.base.util.Debug; import org.ofbiz.entity.GenericValue; import org.ofbiz.minilang.SimpleMethod; @@ -39,13 +40,13 @@ public static final String module = CallServiceAsynch.class.getName(); protected String serviceName; - protected ContextAccessor inMapAcsr; + protected ContextAccessor<Map<String, Object>> inMapAcsr; protected String includeUserLoginStr; public CallServiceAsynch(Element element, SimpleMethod simpleMethod) { super(element, simpleMethod); serviceName = element.getAttribute("service-name"); - inMapAcsr = new ContextAccessor(element.getAttribute("in-map-name")); + inMapAcsr = new ContextAccessor<Map<String, Object>>(element.getAttribute("in-map-name")); includeUserLoginStr = element.getAttribute("include-user-login"); } @@ -53,13 +54,13 @@ String serviceName = methodContext.expandString(this.serviceName); boolean includeUserLogin = !"false".equals(methodContext.expandString(includeUserLoginStr)); - Map inMap = null; + Map<String, Object> inMap = null; if (inMapAcsr.isEmpty()) { - inMap = new HashMap(); + inMap = FastMap.newInstance(); } else { - inMap = (Map) inMapAcsr.get(methodContext); + inMap = inMapAcsr.get(methodContext); if (inMap == null) { - inMap = new HashMap(); + inMap = FastMap.newInstance(); inMapAcsr.put(methodContext, inMap); } } |
Free forum by Nabble | Edit this page |