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 FieldToEnv extends MethodOperation { 41 42 public static final String module = FieldToEnv.class.getName(); 43 44 ContextAccessor envAcsr; 45 ContextAccessor mapAcsr; 46 ContextAccessor fieldAcsr; 47 48 public FieldToEnv(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 if (envAcsr.isEmpty()) { 60 envAcsr = fieldAcsr; 61 } 62 } 63 64 public boolean exec(MethodContext methodContext) { 65 Object fieldVal = null; 66 67 if (!mapAcsr.isEmpty()) { 68 Map fromMap = (Map) mapAcsr.get(methodContext); 69 70 if (fromMap == null) { 71 Debug.logWarning("Map not found with name " + mapAcsr + ", not copying field", module); 72 return true; 73 } 74 75 fieldVal = fieldAcsr.get(fromMap, methodContext); 76 } else { 77 fieldVal = fieldAcsr.get(methodContext); 79 } 80 81 if (fieldVal == null) { 82 if (Debug.verboseOn()) Debug.logVerbose("Field value not found with name " + fieldAcsr + " in Map with name " + mapAcsr + ", not copying field", module); 83 return true; 84 } 85 86 envAcsr.put(methodContext, fieldVal); 87 return true; 88 } 89 90 public String rawString() { 91 return "<field-to-env env-name=\"" + this.envAcsr + "\" field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\"/>"; 92 } 93 public String expandedString(MethodContext methodContext) { 94 return this.rawString(); 96 } 97 } 98 | Popular Tags |