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 FieldToList extends MethodOperation { 41 42 public static final String module = FieldToList.class.getName(); 43 44 ContextAccessor mapAcsr; 45 ContextAccessor fieldAcsr; 46 ContextAccessor listAcsr; 47 48 public FieldToList(Element element, SimpleMethod simpleMethod) { 49 super(element, simpleMethod); 50 mapAcsr = new ContextAccessor(element.getAttribute("map-name")); 51 fieldAcsr = new ContextAccessor(element.getAttribute("field-name")); 52 listAcsr = new ContextAccessor(element.getAttribute("list-name")); 53 } 54 55 public boolean exec(MethodContext methodContext) { 56 Object fieldVal = null; 57 58 if (!mapAcsr.isEmpty()) { 59 Map fromMap = (Map) mapAcsr.get(methodContext); 60 61 if (fromMap == null) { 62 Debug.logWarning("Map not found with name " + mapAcsr + ", Not copying to list", module); 63 return true; 64 } 65 66 fieldVal = fieldAcsr.get(fromMap, methodContext); 67 } else { 68 fieldVal = fieldAcsr.get(methodContext); 70 } 71 72 if (fieldVal == null) { 73 Debug.logWarning("Field value not found with name " + fieldAcsr + " in Map with name " + mapAcsr + ", Not copying to list", module); 74 return true; 75 } 76 77 List toList = (List) listAcsr.get(methodContext); 78 79 if (toList == null) { 80 if (Debug.verboseOn()) Debug.logVerbose("List not found with name " + listAcsr + ", creating new list", module); 81 toList = new LinkedList(); 82 listAcsr.put(methodContext, toList); 83 } 84 85 toList.add(fieldVal); 86 return true; 87 } 88 89 public String rawString() { 90 return "<field-to-list list-name=\"" + this.listAcsr + "\" field-name=\"" + this.fieldAcsr + "\" map-name=\"" + this.mapAcsr + "\"/>"; 91 } 92 public String expandedString(MethodContext methodContext) { 93 return this.rawString(); 95 } 96 } 97 | Popular Tags |