Package org.picocontainer.containers
Class TieringPicoContainer
- java.lang.Object
-
- org.picocontainer.DefaultPicoContainer
-
- org.picocontainer.containers.TieringPicoContainer
-
- All Implemented Interfaces:
java.io.Serializable,ComponentMonitorStrategy,Converting,Disposable,MutablePicoContainer,PicoContainer,Startable
public class TieringPicoContainer extends DefaultPicoContainer
- See Also:
- Serialized Form
-
-
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
Constructors Constructor Description TieringPicoContainer()Creates a new container with aAdaptingBehaviorand 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)AdaptingInjectionand a parent container.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PicoContainergetParent()Retrieve the parent container of this container.MutablePicoContainermakeChildContainer()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 Detail
-
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 createsCachedinstances, 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
public TieringPicoContainer(ComponentMonitor monitor, PicoContainer parent)
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
public TieringPicoContainer(LifecycleStrategy lifecycleStrategy, PicoContainer parent)
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
public TieringPicoContainer(ComponentFactory componentFactory)
Creates a new container with a custom ComponentFactory and no parent container.- Parameters:
componentFactory- the ComponentFactory to use.
-
TieringPicoContainer
public TieringPicoContainer(ComponentMonitor monitor)
Creates a new container with the AdaptingInjection using a custom ComponentMonitor- Parameters:
monitor- the ComponentMonitor to use
-
TieringPicoContainer
public TieringPicoContainer(PicoContainer parent)
Creates a new container with a (caching)AdaptingInjectionand a parent container.- Parameters:
parent- the parent container (used for component dependency lookups).
-
TieringPicoContainer
public TieringPicoContainer()
Creates a new container with aAdaptingBehaviorand no parent container.
-
-
Method Detail
-
getParent
public PicoContainer getParent()
Description copied from class:DefaultPicoContainerRetrieve the parent container of this container.- Specified by:
getParentin interfacePicoContainer- Overrides:
getParentin classDefaultPicoContainer- Returns:
- a
PicoContainerinstance, ornullif this container does not have a parent.
-
makeChildContainer
public MutablePicoContainer makeChildContainer()
Description copied from interface:MutablePicoContainerMake 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:
makeChildContainerin interfaceMutablePicoContainer- Overrides:
makeChildContainerin classDefaultPicoContainer- Returns:
- the new child container.
-
-