|
![]() |
|||||||||
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 Class<?> |
box(Class<?> 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(Class[] 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(Class[] 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
ComponentAdapter
Cached
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
ComponentAdapter
Cached
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)
ComponentAdapter
PicoContainer
, 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 LifecycleStrategy
component
- the instance of the component to startpublic void stop(Object component)
LifecycleStrategy
stop
in interface LifecycleStrategy
component
- the instance of the component to stoppublic void dispose(Object component)
LifecycleStrategy
dispose
in interface LifecycleStrategy
component
- the instance of the component to disposepublic boolean hasLifecycle(Class<?> type)
LifecycleStrategy
hasLifecycle
in interface LifecycleStrategy
type
- 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 Class<?> box(Class<?> parameterType)
|
![]() |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |