org.nutz.ioc.java.ObjectFunctionNode Maven / Gradle / Ivy
package org.nutz.ioc.java;
import org.nutz.ioc.IocMaking;
import org.nutz.lang.Mirror;
public class ObjectFunctionNode extends ChainNode {
private String name;
private ChainNode[] args;
public ObjectFunctionNode(String name, ChainNode[] args) {
this.name = name;
this.args = args;
}
@Override
protected Object getValue(IocMaking ing, Object obj) throws Exception {
if (null == obj)
return null;
Object[] fas = new Object[args.length];
for (int i = 0; i < args.length; i++)
fas[i] = args[i].getValue(ing, null);
return Mirror.me(obj.getClass()).invoke(obj, name, fas);
}
protected String asString() {
StringBuilder sb = new StringBuilder();
if (args.length > 0) {
sb.append(args[0].toString());
for (int i = 1; i < args.length; i++)
sb.append(", ").append(args[i].toString());
}
return String.format("%s(%s)", name, sb);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy