1 24 package org.ofbiz.minilang.method.envops; 25 26 import java.util.*; 27 28 import org.w3c.dom.*; 29 import org.ofbiz.base.util.*; 30 import org.ofbiz.minilang.*; 31 import org.ofbiz.minilang.method.*; 32 33 40 public class EnvToField extends MethodOperation { 41 42 public static final String module = EnvToField.class.getName(); 43 44 ContextAccessor envAcsr; 45 ContextAccessor mapAcsr; 46 ContextAccessor fieldAcsr; 47 48 public EnvToField(Element element, SimpleMethod simpleMethod) { 49 super(element, simpleMethod); 50 envAcsr = new ContextAccessor(element.getAttribute("env-name")); 51 mapAcsr = new ContextAccessor(element.getAttribute("map-name")); 52 fieldAcsr = new ContextAccessor(element.getAttribute("field-name")); 53 54 if (fieldAcsr.isEmpty()) { 56 fieldAcsr = envAcsr; 57 } 58 } 59 60 public boolean exec(MethodContext methodContext) { 61 Object envVar = envAcsr.get(methodContext); 62 63 if (envVar == null) { 64 Debug.logWarning("Environment field not found with name " + envAcsr + ", not copying env field", module); 65 return true; 66 } 67 68 if (!mapAcsr.isEmpty()) { 69 Map toMap = (Map) mapAcsr.get(methodContext); 70 71 if (toMap == null) { 72 if (Debug.verboseOn()) Debug.logVerbose("Map not found with name " + mapAcsr + ", creating new map", module); 73 toMap = new HashMap(); 74 mapAcsr.put(methodContext, toMap); 75 } 76 fieldAcsr.put(toMap, envVar, methodContext); 77 } else { 78 fieldAcsr.put(methodContext, envVar); 80 } 81 return true; 82 } 83 84 public String rawString() { 85 return "<env-to-field env-name=\"" + this.envAcsr + "\" field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\"/>"; 86 } 87 public String expandedString(MethodContext methodContext) { 88 return this.rawString(); 90 } 91 } 92 | Popular Tags |