Package org.picocontainer.injectors
Class CompositeInjector<T>
java.lang.Object
org.picocontainer.adapters.AbstractAdapter<T>
org.picocontainer.injectors.AbstractInjector<T>
org.picocontainer.injectors.CompositeInjector<T>
- All Implemented Interfaces:
Serializable,ComponentAdapter<T>,ComponentMonitorStrategy,Injector<T>
- Direct Known Subclasses:
MultiInjector
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.picocontainer.injectors.AbstractInjector
AbstractInjector.AmbiguousComponentResolutionException, AbstractInjector.CyclicDependencyException, AbstractInjector.NotConcreteRegistrationException, AbstractInjector.UnsatisfiableDependenciesExceptionNested classes/interfaces inherited from interface org.picocontainer.ComponentAdapter
ComponentAdapter.NOTHING -
Field Summary
Fields inherited from class org.picocontainer.injectors.AbstractInjector
parameters, verifyingGuard -
Constructor Summary
ConstructorsConstructorDescriptionCompositeInjector(Object componentKey, Class<?> componentImplementation, Parameter[] parameters, ComponentMonitor monitor, boolean useNames, Injector... injectors) -
Method Summary
Modifier and TypeMethodDescriptionfinal voidaccept(PicoVisitor visitor) Accepts a visitor for this ComponentAdapter.decorateComponentInstance(PicoContainer container, Type into, T instance) A preexiting component instance can be injected into after instantiationgetComponentInstance(PicoContainer container) Retrieve the component instance.getComponentInstance(PicoContainer container, Type into) Retrieve the component instance.Get a string key descriptor of the component adapter for use in toString()voidverify(PicoContainer container) Verify that all dependencies for this adapter can be satisfied.Methods inherited from class org.picocontainer.injectors.AbstractInjector
box, caughtIllegalAccessException, caughtIllegalAccessException, caughtInstantiationException, caughtInvocationTargetException, createDefaultParameters, newInstance, useNamesMethods inherited from class org.picocontainer.adapters.AbstractAdapter
changeMonitor, checkTypeCompatibility, currentMonitor, findAdapterOfType, getComponentImplementation, getComponentKey, getDelegate, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.picocontainer.ComponentAdapter
findAdapterOfType, getComponentImplementation, getComponentKey, getDelegate
-
Constructor Details
-
CompositeInjector
public CompositeInjector(Object componentKey, Class<?> componentImplementation, Parameter[] parameters, ComponentMonitor monitor, boolean useNames, Injector... injectors)
-
-
Method Details
-
getComponentInstance
Description copied from interface:ComponentAdapterRetrieve the component instance. This method will usually create a new instance each time it is called, but that is not required. For example,Cachedwill always return the same instance.- Specified by:
getComponentInstancein interfaceComponentAdapter<T>- Overrides:
getComponentInstancein classAbstractInjector<T>- Parameters:
container- thePicoContainer, that is used to resolve any possible dependencies of the instance.- Returns:
- the component instance.
- Throws:
PicoCompositionException- if the component has dependencies which could not be resolved, or instantiation of the component lead to an ambigous situation within the container.
-
getComponentInstance
Description copied from interface:ComponentAdapterRetrieve the component instance. This method will usually create a new instance each time it is called, but that is not required. For example,Cachedwill always return the same instance.- Specified by:
getComponentInstancein interfaceComponentAdapter<T>- Specified by:
getComponentInstancein classAbstractInjector<T>- Parameters:
container- thePicoContainer, 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.- Returns:
- the component instance.
- Throws:
PicoCompositionException- if the component has dependencies which could not be resolved, or instantiation of the component lead to an ambiguous situation within the container.
-
decorateComponentInstance
Description copied from interface:InjectorA preexiting component instance can be injected into after instantiation- Specified by:
decorateComponentInstancein interfaceInjector<T>- Overrides:
decorateComponentInstancein classAbstractInjector<T>- Parameters:
container- the container that can provide injectable dependenciesinto-instance- the instance to- Returns:
- the object returned is the result of the last of the injectors delegated to
-
verify
Description copied from interface:ComponentAdapterVerify that all dependencies for this adapter can be satisfied. Normally, the adapter should verify this by checking that the associated PicoContainer contains all the needed dependencies.- Specified by:
verifyin interfaceComponentAdapter<T>- Overrides:
verifyin classAbstractInjector<T>- Parameters:
container- thePicoContainer, that is used to resolve any possible dependencies of the instance.- Throws:
PicoCompositionException- if one or more dependencies cannot be resolved.
-
accept
Description copied from interface:ComponentAdapterAccepts a visitor for this ComponentAdapter. The method is normally called by visiting aPicoContainer, that cascades the visitor also down to all its ComponentAdapter instances.- Specified by:
acceptin interfaceComponentAdapter<T>- Overrides:
acceptin classAbstractInjector<T>- Parameters:
visitor- the visitor.
-
getDescriptor
Description copied from interface:ComponentAdapterGet a string key descriptor of the component adapter for use in toString()- Specified by:
getDescriptorin interfaceComponentAdapter<T>- Overrides:
getDescriptorin classAbstractInjector<T>- Returns:
- the descriptor
-