package org.ripple.power.ioc.injector.attribute;
import org.ripple.power.ioc.injector.CompositeInjector;
import org.ripple.power.ioc.injector.Container;
import org.ripple.power.ioc.injector.InjectorFactory;
import org.ripple.power.ioc.reflect.Reflector;
public class AttributeInjectorBuilderImpl implements AttributeInjectorBuilder {
private CompositeInjector compositeInjector = InjectorFactory
.createCompositeInjector();
public AttributeInjectorBuilder addAttributeKey(Reflector reflector,
String attributeName, Object key) {
this.compositeInjector.addInjector(new AttributeKeyInjector(reflector,
attributeName, key));
return this;
}
public AttributeInjectorBuilder addAttributeInstance(Reflector reflector,
String attributeName, Object instance) {
this.compositeInjector.addInjector(new AttributeInjectorInstance(
reflector, attributeName, instance));
return this;
}
public AttributeInjectorBuilder addAttribute(Reflector reflector,
String attributeName) {
this.compositeInjector.addInjector(new AutoKeyAttributeInjector(
reflector, attributeName));
return this;
}
public void setInjector(Object key, Container container) {
container.addInjector(key, this.compositeInjector);
}
}