package org.ripple.power.ioc; import java.util.Set; import org.ripple.power.ioc.injector.Container; public interface Ioc extends IControl { /** * 返回当前Ioc对象中的Feild集合 * * @return */ public Set<Object> getFeilds(); /** * 获得一个指定的Feild数值 * * @param name * @return */ public Object getFeild(final String name); /** * 检查当前Ioc对象是否为指定接口的实现 * * @param clazz * @return */ public boolean isImplInterface(final Class<?> clazz); /** * 检查当前Ioc对象是否为指定接口的实现 * * @param className * @return */ public boolean isImplInterface(final String className); /** * 指定一个函数,传参并执行 * * @param methodName * @param args * @return * @throws Exception */ public Object doInvoke(final String methodName, final Object[] args) throws Exception; /** * 指定一个函数并执行 * * @param methodName * @return * @throws Exception */ public Object doInvoke(String methodName) throws Exception; /** * 获得Ioc中一个子类的Ioc对象 * * @param methodName * @return */ public Ioc getChild(String methodName); /** * 返回当前容器 * * @return */ public Container getContainer(); /** * 注入指定方法 * * @param attributeName * @param value */ public void setMethod(String attributeName, int value); /** * 注入指定方法 * * @param attributeName * @param value */ public void setMethod(String attributeName, long value); /** * 注入指定方法 * * @param attributeName * @param value */ public void setMethod(String attributeName, double value); /** * 注入指定方法 * * @param attributeName * @param value */ public void setMethod(String attributeName, float value); /** * 注入指定方法 * * @param attributeName * @param value */ public void setMethod(String attributeName, boolean value); /** * 注入指定方法 * * @param attributeName * @param value */ public void setMethod(final String attributeName, final Object value); }