All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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