package org.ripple.power.ioc.injector.attribute; import org.ripple.power.ioc.injector.Container; import org.ripple.power.ioc.reflect.Reflector; import org.ripple.power.utils.ReflectorUtils; public class AutoKeyAttributeInjector extends AttributeAbstractInjector { public AutoKeyAttributeInjector(Reflector reflector, String attributeName) { super(reflector, attributeName); } private Class<?> inspect(Object target) { return ReflectorUtils.getParameterType(target.getClass(), this.attributeName, "set"); } protected Object getInstance(Container container, Object target) { Class<?> key = inspect(target); return container.getInstance(key); } }