|
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.picocontainer.adapters.AbstractAdapter<T>
org.picocontainer.injectors.AbstractInjector<T>
public abstract class AbstractInjector<T>
This ComponentAdapter will instantiate a new object for each call to
ComponentAdapter.getComponentInstance(PicoContainer, Type).
That means that when used with a PicoContainer, getComponent will
return a new object each time.
| Nested Class Summary | |
|---|---|
static class |
AbstractInjector.AmbiguousComponentResolutionException
Exception that is thrown as part of the introspection. |
static class |
AbstractInjector.CyclicDependencyException
|
static class |
AbstractInjector.NotConcreteRegistrationException
|
static class |
AbstractInjector.UnsatisfiableDependenciesException
Exception thrown when some of the component's dependencies are not satisfiable. |
| Nested classes/interfaces inherited from interface org.picocontainer.ComponentAdapter |
|---|
ComponentAdapter.NOTHING |
| Field Summary | |
|---|---|
protected Parameter[] |
parameters
The parameters to use for initialization. |
protected org.picocontainer.injectors.AbstractInjector.ThreadLocalCyclicDependencyGuard |
verifyingGuard
The cycle guard for the verification. |
| Constructor Summary | |
|---|---|
protected |
AbstractInjector(Object componentKey,
Class<?> componentImplementation,
Parameter[] parameters,
ComponentMonitor monitor,
boolean useNames)
Constructs a new ComponentAdapter for the given key and implementation. |
| Method Summary | |
|---|---|
void |
accept(PicoVisitor visitor)
Accepts a visitor for this ComponentAdapter. |
protected Type |
box(Type parameterType)
|
protected T |
caughtIllegalAccessException(ComponentMonitor componentMonitor,
Constructor<T> constructor,
IllegalAccessException e,
PicoContainer container)
inform monitor about access exception. |
protected Object |
caughtIllegalAccessException(ComponentMonitor componentMonitor,
Member member,
Object componentInstance,
IllegalAccessException e)
|
protected T |
caughtInstantiationException(ComponentMonitor componentMonitor,
Constructor<T> constructor,
InstantiationException e,
PicoContainer container)
inform monitor about component instantiation failure |
protected T |
caughtInvocationTargetException(ComponentMonitor componentMonitor,
Member member,
Object componentInstance,
InvocationTargetException e)
inform monitor about exception while instantiating component |
protected Parameter[] |
createDefaultParameters(Type[] parameterTypes)
Create default parameters for the given types. |
Object |
decorateComponentInstance(PicoContainer container,
Type into,
T instance)
A preexiting component instance can be injected into after instantiation |
T |
getComponentInstance(PicoContainer container)
Retrieve the component instance. |
abstract T |
getComponentInstance(PicoContainer container,
Type into)
Retrieve the component instance. |
String |
getDescriptor()
Get a string key descriptor of the component adapter for use in toString() |
protected T |
newInstance(Constructor<T> constructor,
Object[] parameters)
Instantiate an object with given parameters and respect the accessible flag. |
boolean |
useNames()
|
void |
verify(PicoContainer container)
Verify that all dependencies for this adapter can be satisfied. |
| Methods inherited from class org.picocontainer.adapters.AbstractAdapter |
|---|
changeMonitor, checkTypeCompatibility, currentMonitor, findAdapterOfType, getComponentImplementation, getComponentKey, getDelegate, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.picocontainer.ComponentAdapter |
|---|
findAdapterOfType, getComponentImplementation, getComponentKey, getDelegate |
| Field Detail |
|---|
protected transient org.picocontainer.injectors.AbstractInjector.ThreadLocalCyclicDependencyGuard verifyingGuard
protected transient Parameter[] parameters
| Constructor Detail |
|---|
protected AbstractInjector(Object componentKey,
Class<?> componentImplementation,
Parameter[] parameters,
ComponentMonitor monitor,
boolean useNames)
componentKey - the search key for this implementationcomponentImplementation - the concrete implementationparameters - the parameters to use for the initializationmonitor - the component monitor used by this ComponentAdapter
AbstractInjector.NotConcreteRegistrationException - if the implementation is not a concrete class
NullPointerException - if one of the parameters is null| Method Detail |
|---|
public boolean useNames()
protected Parameter[] createDefaultParameters(Type[] parameterTypes)
parameterTypes - the parameter types
public void verify(PicoContainer container)
throws PicoCompositionException
ComponentAdapter
verify in interface ComponentAdapter<T>container - the PicoContainer, that is used to resolve any possible dependencies of the instance.
PicoCompositionException - if one or more dependencies cannot be resolved.
public T getComponentInstance(PicoContainer container)
throws PicoCompositionException
ComponentAdapterCached will always return the
same instance.
getComponentInstance in interface ComponentAdapter<T>getComponentInstance in class AbstractAdapter<T>container - the PicoContainer, that is used to resolve any possible dependencies of the instance.
PicoCompositionException - if the component has dependencies which could not be resolved, or
instantiation of the component lead to an ambigous situation within the
container.
public abstract T getComponentInstance(PicoContainer container,
Type into)
throws PicoCompositionException
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.
PicoCompositionException - if the component has dependencies which could not be resolved, or
instantiation of the component lead to an ambiguous situation within the
container.
public Object decorateComponentInstance(PicoContainer container,
Type into,
T instance)
Injector
decorateComponentInstance in interface Injector<T>container - the container that can provide injectable dependenciesinstance - the instance to
public void accept(PicoVisitor visitor)
ComponentAdapterPicoContainer, that
cascades the visitor also down to all its ComponentAdapter instances.
accept in interface ComponentAdapter<T>accept in class AbstractAdapter<T>visitor - the visitor.public String getDescriptor()
ComponentAdapter
getDescriptor in interface ComponentAdapter<T>
protected T newInstance(Constructor<T> constructor,
Object[] parameters)
throws InstantiationException,
IllegalAccessException,
InvocationTargetException
constructor - the constructor to useparameters - the parameters for the constructor
InstantiationException
IllegalAccessException
InvocationTargetException
protected T caughtInstantiationException(ComponentMonitor componentMonitor,
Constructor<T> constructor,
InstantiationException e,
PicoContainer container)
componentMonitor - constructor - e - container -
protected T caughtIllegalAccessException(ComponentMonitor componentMonitor,
Constructor<T> constructor,
IllegalAccessException e,
PicoContainer container)
componentMonitor - constructor - e - container -
protected T caughtInvocationTargetException(ComponentMonitor componentMonitor,
Member member,
Object componentInstance,
InvocationTargetException e)
componentMonitor - member - componentInstance - e -
protected Object caughtIllegalAccessException(ComponentMonitor componentMonitor,
Member member,
Object componentInstance,
IllegalAccessException e)
protected Type box(Type parameterType)
|
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||