1 24 package org.ofbiz.minilang.method; 25 26 import java.util.*; 27 28 import org.w3c.dom.*; 29 import org.ofbiz.base.util.*; 30 import org.ofbiz.minilang.*; 31 32 39 public class FieldObject extends MethodObject { 40 41 public static final String module = FieldObject.class.getName(); 42 43 ContextAccessor fieldAcsr; 44 ContextAccessor mapAcsr; 45 String type; 46 47 public FieldObject(Element element, SimpleMethod simpleMethod) { 48 super(element, simpleMethod); 49 fieldAcsr = new ContextAccessor(element.getAttribute("field-name")); 50 mapAcsr = new ContextAccessor(element.getAttribute("map-name")); 51 type = element.getAttribute("type"); 52 if (UtilValidate.isEmpty(type)) { 53 type = "String"; 54 } 55 } 56 57 58 public String getTypeName() { 59 return type; 60 } 61 62 public Class getTypeClass(ClassLoader loader) { 63 try { 64 return ObjectType.loadClass(type, loader); 65 } catch (ClassNotFoundException e) { 66 Debug.logError(e, "Could not find class for type: " + type, module); 67 return null; 68 } 69 } 70 71 public Object getObject(MethodContext methodContext) { 72 Object fieldVal = null; 73 74 if (!mapAcsr.isEmpty()) { 75 Map fromMap = (Map) mapAcsr.get(methodContext); 76 if (fromMap == null) { 77 Debug.logWarning("Map not found with name " + mapAcsr + ", not getting Object value, returning null.", module); 78 return null; 79 } 80 fieldVal = fieldAcsr.get(fromMap, methodContext); 81 } else { 82 fieldVal = fieldAcsr.get(methodContext); 84 } 85 86 if (fieldVal == null) { 87 if (Debug.infoOn()) Debug.logInfo("Field value not found with name " + fieldAcsr + " in Map with name " + mapAcsr + ", not getting Object value, returning null.", module); 88 return null; 89 } 90 91 return fieldVal; 92 } 93 } 94 | Popular Tags |