public static Object getFieldSafe(Class senderClass, Object receiver, String messageName) throws Throwable { if (receiver == null) return null; return getField(senderClass, receiver, messageName); }
public static Object getFieldSpreadSafe(Class senderClass, Object receiver, String messageName) throws Throwable { if (receiver == null) return null; if (!isSpreadable(receiver)) return getField(senderClass, receiver, messageName); List list = (List) receiver; List answer = new ArrayList(); for (Iterator it = list.iterator(); it.hasNext();) { answer.add(getFieldSafe(senderClass, it.next(), messageName)); } return answer; }
public Object getAttribute(Object lhs, String name) throws Throwable { Object v = ScriptBytecodeAdapter.getField(null/*Groovy doesn't use this parameter*/, lhs, name); return v; }
public static Object getFieldSafe(Class senderClass, Object receiver, String messageName) throws Throwable { if (receiver == null) return null; return getField(senderClass, receiver, messageName); }
public static Object getFieldSafe(Class senderClass, Object receiver, String messageName) throws Throwable { if (receiver == null) return null; return getField(senderClass, receiver, messageName); }
public static Object getFieldSafe(Class senderClass, Object receiver, String messageName) throws Throwable { if (receiver == null) return null; return getField(senderClass, receiver, messageName); }
public static Object getFieldSafe(Class senderClass, Object receiver, String messageName) throws Throwable { if (receiver == null) return null; return getField(senderClass, receiver, messageName); }
public Object call(Object receiver, String property) throws Throwable { if (chain.hasNext()) return chain.next().onGetAttribute(this,receiver,property); else // according to AsmClassGenerator this is how the compiler maps it to return ScriptBytecodeAdapter.getField(null,receiver,property); } }.call(_receiver,_property.toString());