public static Object invokeOverloadedFromObject(boolean respectIgnore, String view, Set<String> ignoreProperties, Object object, String name, Object args) { try { if (args instanceof Map) { return invokeOverloadedFromList(respectIgnore, view, ignoreProperties, object, name, Lists.list(args)); } else if (args instanceof List) { List list = (List) args; ClassMeta classMeta = ClassMeta.classMeta(object.getClass()); MethodAccess m = classMeta.method(name); if (m.parameterTypes().length == 1 && list.size() > 0) { Object firstArg = list.get(0); if (firstArg instanceof Map || firstArg instanceof List) { return invokeOverloadedFromList(respectIgnore, view, ignoreProperties, object, name, list); } else { return invokeOverloadedFromList(respectIgnore, view, ignoreProperties, object, name, Lists.list(args)); } } else { return invokeOverloadedFromList(respectIgnore, view, ignoreProperties, object, name, list); } } else if (args == null) { return invoke(object, name); } else { return invokeOverloadedFromList(respectIgnore, view, ignoreProperties, object, name, Lists.list(args));
public static Object invokeOverloadedFromObject(boolean respectIgnore, String view, Set<String> ignoreProperties, Object object, String name, Object args) { try { if (args instanceof Map) { return invokeOverloadedFromList(respectIgnore, view, ignoreProperties, object, name, Lists.list(args)); } else if (args instanceof List) { List list = (List) args; ClassMeta classMeta = ClassMeta.classMeta(object.getClass()); MethodAccess m = classMeta.method(name); if (m.parameterTypes().length == 1 && list.size() > 0) { Object firstArg = list.get(0); if (firstArg instanceof Map || firstArg instanceof List) { return invokeOverloadedFromList(respectIgnore, view, ignoreProperties, object, name, list); } else { return invokeOverloadedFromList(respectIgnore, view, ignoreProperties, object, name, Lists.list(args)); } } else { return invokeOverloadedFromList(respectIgnore, view, ignoreProperties, object, name, list); } } else if (args == null) { return invoke(object, name); } else { return invokeOverloadedFromList(respectIgnore, view, ignoreProperties, object, name, Lists.list(args));