|
|
|||||||||
| 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
org.picocontainer.ComponentAdapter#getComponentInstance(PicoContainer, Class).
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 LifecycleStrategy |
lifecycleStrategy
The strategy used to control the lifecycle |
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,
LifecycleStrategy lifecycleStrategy,
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[] parameters)
Create default parameters for the given types. |
void |
dispose(Object component)
Invoke the "dispose" method on the component instance if this is disposable. |
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. |
boolean |
hasLifecycle(Class<?> type)
Test if a component instance has a lifecycle. |
protected T |
newInstance(Constructor<T> constructor,
Object[] parameters)
Instantiate an object with given parameters and respect the accessible flag. |
void |
start(Object component)
Invoke the "start" method on the component instance if this is startable. |
void |
stop(Object component)
Invoke the "stop" method on the component instance if this is stoppable. |
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.Injector |
|---|
decorateComponentInstance |
| 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
protected LifecycleStrategy lifecycleStrategy
| Constructor Detail |
|---|
protected AbstractInjector(Object componentKey,
Class<?> componentImplementation,
Parameter[] parameters,
ComponentMonitor monitor,
LifecycleStrategy lifecycleStrategy,
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 ComponentAdapterlifecycleStrategy - the lifecycle strategy 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[] parameters)
parameters - 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 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 void start(Object component)
LifecycleStrategy
start in interface LifecycleStrategycomponent - the instance of the component to startpublic void stop(Object component)
LifecycleStrategy
stop in interface LifecycleStrategycomponent - the instance of the component to stoppublic void dispose(Object component)
LifecycleStrategy
dispose in interface LifecycleStrategycomponent - the instance of the component to disposepublic boolean hasLifecycle(Class<?> type)
LifecycleStrategy
hasLifecycle in interface LifecycleStrategytype - the component's type
true if the component has a lifecyclepublic 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 | |||||||||