Package org.picocontainer.containers
Class TieringPicoContainer
java.lang.Object
org.picocontainer.DefaultPicoContainer
org.picocontainer.containers.TieringPicoContainer
- All Implemented Interfaces:
Serializable
,ComponentMonitorStrategy
,Converting
,Disposable
,MutablePicoContainer
,PicoContainer
,Startable
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.picocontainer.DefaultPicoContainer
DefaultPicoContainer.KnowsContainerAdapter<T>, DefaultPicoContainer.LateInstance
-
Field Summary
Fields inherited from class org.picocontainer.DefaultPicoContainer
componentFactory, componentMonitor, lifecycleStrategy, orderedComponentAdapters
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new container with aAdaptingBehavior
and no parent container.TieringPicoContainer
(ComponentFactory componentFactory) Creates a new container with a custom ComponentFactory and no parent container.TieringPicoContainer
(ComponentFactory componentFactory, LifecycleStrategy lifecycleStrategy, PicoContainer parent) Creates a new container with a custom ComponentFactory, LifecycleStrategy for instance registration, and a parent container.TieringPicoContainer
(ComponentFactory componentFactory, LifecycleStrategy lifecycleStrategy, PicoContainer parent, ComponentMonitor componentMonitor) TieringPicoContainer
(ComponentMonitor monitor) Creates a new container with the AdaptingInjection using a custom ComponentMonitorTieringPicoContainer
(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, PicoContainer parent) Creates a new container with the AdaptingInjection using a custom ComponentMonitor and lifecycle strategyTieringPicoContainer
(ComponentMonitor monitor, PicoContainer parent) Creates a new container with the AdaptingInjection using a custom ComponentMonitorTieringPicoContainer
(LifecycleStrategy lifecycleStrategy, PicoContainer parent) Creates a new container with the AdaptingInjection using a custom lifecycle strategyTieringPicoContainer
(PicoContainer parent) Creates a new container with a (caching)AdaptingInjection
and a parent container. -
Method Summary
Modifier and TypeMethodDescriptionRetrieve the parent container of this container.Make a child container, using both the same implementation of MutablePicoContainer as the parent and identical behaviors as well.Methods inherited from class org.picocontainer.DefaultPicoContainer
accept, addAdapter, addAdapter, addAdapterInternal, addChildContainer, addComponent, addComponent, addConfig, as, change, changeMonitor, currentMonitor, decorateComponent, dispose, getComponent, getComponent, getComponent, getComponent, getComponent, getComponentAdapter, getComponentAdapter, getComponentAdapter, getComponentAdapters, getComponentAdapters, getComponentAdapters, getComponentKeyToAdapterCache, getComponents, getComponents, getConverters, getLifecycleState, getModifiableComponentAdapterList, getName, getOrderedComponentAdapters, instantiateComponentAsIsStartable, potentiallyStartAdapter, removeChildContainer, removeComponent, removeComponentByInstance, setLifecycleState, setName, start, stop, toString
-
Constructor Details
-
TieringPicoContainer
public TieringPicoContainer(ComponentFactory componentFactory, LifecycleStrategy lifecycleStrategy, PicoContainer parent) Creates a new container with a custom ComponentFactory, LifecycleStrategy for instance registration, and a parent container. Important note about caching: If you intend the components to be cached, you should pass in a factory that createsCached
instances, such as for exampleCaching
. Caching can delegate to other ComponentAdapterFactories.- Parameters:
componentFactory
- the factory to use for creation of ComponentAdapters.lifecycleStrategy
- the lifecycle strategy chosen for registered instance (not implementations!)parent
- the parent container (used for component dependency lookups).
-
TieringPicoContainer
public TieringPicoContainer(ComponentFactory componentFactory, LifecycleStrategy lifecycleStrategy, PicoContainer parent, ComponentMonitor componentMonitor) -
TieringPicoContainer
Creates a new container with the AdaptingInjection using a custom ComponentMonitor- Parameters:
monitor
- the ComponentMonitor to useparent
- the parent container (used for component dependency lookups).
-
TieringPicoContainer
public TieringPicoContainer(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, PicoContainer parent) Creates a new container with the AdaptingInjection using a custom ComponentMonitor and lifecycle strategy- Parameters:
monitor
- the ComponentMonitor to uselifecycleStrategy
- the lifecycle strategy to use.parent
- the parent container (used for component dependency lookups).
-
TieringPicoContainer
Creates a new container with the AdaptingInjection using a custom lifecycle strategy- Parameters:
lifecycleStrategy
- the lifecycle strategy to use.parent
- the parent container (used for component dependency lookups).
-
TieringPicoContainer
Creates a new container with a custom ComponentFactory and no parent container.- Parameters:
componentFactory
- the ComponentFactory to use.
-
TieringPicoContainer
Creates a new container with the AdaptingInjection using a custom ComponentMonitor- Parameters:
monitor
- the ComponentMonitor to use
-
TieringPicoContainer
Creates a new container with a (caching)AdaptingInjection
and a parent container.- Parameters:
parent
- the parent container (used for component dependency lookups).
-
TieringPicoContainer
public TieringPicoContainer()Creates a new container with aAdaptingBehavior
and no parent container.
-
-
Method Details
-
getParent
Description copied from class:DefaultPicoContainer
Retrieve the parent container of this container.- Specified by:
getParent
in interfacePicoContainer
- Overrides:
getParent
in classDefaultPicoContainer
- Returns:
- a
PicoContainer
instance, ornull
if this container does not have a parent.
-
makeChildContainer
Description copied from interface:MutablePicoContainer
Make a child container, using both the same implementation of MutablePicoContainer as the parent and identical behaviors as well. It will have a reference to this as parent. This will list the resulting MPC as a child. Lifecycle events will be cascaded from parent to child as a consequence of this.Note that for long-lived parent containers, you need to unregister child containers made with this call before disposing or you will leak memory. (Experience speaking here! )
Incorrect Example:
MutablePicoContainer parent = new PicoBuilder().withCaching().withLifecycle().build(); MutablePicoContainer child = parent.makeChildContainer(); child = null; //Child still retains in memory because parent still holds reference.
Correct Example:
MutablePicoContainer parent = new PicoBuilder().withCaching().withLifecycle().build(); MutablePicoContainer child = parent.makeChildContainer(); parent.removeChildContainer(child); //Remove the bi-directional references. child = null;
- Specified by:
makeChildContainer
in interfaceMutablePicoContainer
- Overrides:
makeChildContainer
in classDefaultPicoContainer
- Returns:
- the new child container.
-