public abstract class FactoryInjector<T> extends Object implements Injector<T>
An Injector which provides an custom instance in a factory style
| Modifier and Type | Class and Description |
|---|---|
static class |
FactoryInjector.CantWorkItOut |
ComponentAdapter.NOTHING| Constructor and Description |
|---|
FactoryInjector() |
FactoryInjector(Class<T> key) |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(PicoVisitor visitor)
Accepts a visitor for this ComponentAdapter.
|
boolean |
componentHasLifecycle() |
Object |
decorateComponentInstance(PicoContainer container,
Type into,
T instance)
A preexiting component instance can be injected into after instantiation
|
void |
dispose(PicoContainer container) |
<U extends ComponentAdapter> |
findAdapterOfType(Class<U> adapterType)
Locates a component adapter of type componentAdapterType in the ComponentAdapter chain.
|
static Class<?> |
getClass(Type type) |
Class<? extends T> |
getComponentImplementation()
Retrieve the class of the component.
|
T |
getComponentInstance(PicoContainer container)
Retrieve the component instance.
|
abstract T |
getComponentInstance(PicoContainer container,
Type into)
Retrieve the component instance.
|
Object |
getComponentKey()
Retrieve the key associated with the component.
|
ComponentAdapter<T> |
getDelegate()
Component adapters may be nested in a chain, and this method is used to grab the next ComponentAdapter in the chain.
|
String |
getDescriptor()
Get a string key descriptor of the component adapter for use in toString()
|
static <T> List<Class<?>> |
getTypeArguments(Class<FactoryInjector> class1,
Class<? extends Object> class2)
Get the actual type arguments a child class has used to extend a generic base class.
|
void |
start(PicoContainer container) |
void |
stop(PicoContainer container) |
void |
verify(PicoContainer container)
Verify that all dependencies for this adapter can be satisfied.
|
public FactoryInjector() throws PicoCompositionException
PicoCompositionExceptionpublic FactoryInjector(Class<T> key)
public static <T> List<Class<?>> getTypeArguments(Class<FactoryInjector> class1, Class<? extends Object> class2)
class1 - the base classclass2 - the child classpublic Object getComponentKey()
ComponentAdaptergetComponentKey in interface ComponentAdapter<T>public Class<? extends T> getComponentImplementation()
ComponentAdaptergetComponentImplementation in interface ComponentAdapter<T>public void accept(PicoVisitor visitor)
ComponentAdapterPicoContainer, that
cascades the visitor also down to all its ComponentAdapter instances.accept in interface ComponentAdapter<T>visitor - the visitor.public ComponentAdapter<T> getDelegate()
ComponentAdaptergetDelegate in interface ComponentAdapter<T>public <U extends ComponentAdapter> U findAdapterOfType(Class<U> adapterType)
ComponentAdapterfindAdapterOfType in interface ComponentAdapter<T>U - the type of ComponentAdapter being located.adapterType - the class of the adapter type being located. Never null.public T getComponentInstance(PicoContainer container)
ComponentAdapterCached will always return the
same instance.getComponentInstance in interface ComponentAdapter<T>container - the PicoContainer, that is used to resolve any possible dependencies of the instance.public abstract T getComponentInstance(PicoContainer container, Type into)
ComponentAdapterCached will always return the
same instance.getComponentInstance in interface ComponentAdapter<T>container - the PicoContainer, that is used to resolve any possible dependencies of the instance.into - the class that is about to be injected into. Use ComponentAdapter.NOTHING.class if this is not important to you.public Object decorateComponentInstance(PicoContainer container, Type into, T instance)
InjectordecorateComponentInstance in interface Injector<T>container - the container that can provide injectable dependenciesinstance - the instance topublic void verify(PicoContainer container)
ComponentAdapterverify in interface ComponentAdapter<T>container - the PicoContainer, that is used to resolve any possible dependencies of the instance.public String getDescriptor()
ComponentAdaptergetDescriptor in interface ComponentAdapter<T>public void start(PicoContainer container)
public void stop(PicoContainer container)
public void dispose(PicoContainer container)
public boolean componentHasLifecycle()
Copyright © 2003-2014 Codehaus. All Rights Reserved.