Package org.picocontainer.behaviors
Class Stored<T>
- java.lang.Object
-
- org.picocontainer.behaviors.AbstractBehavior<T>
-
- org.picocontainer.behaviors.Stored<T>
-
- All Implemented Interfaces:
java.io.Serializable,Behavior<T>,ComponentAdapter<T>,ComponentLifecycle<T>,ComponentMonitorStrategy,LifecycleStrategy
- Direct Known Subclasses:
Cached,ThreadCached
public class Stored<T> extends AbstractBehavior<T>
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classStored.Instance<T>-
Nested classes/interfaces inherited from interface org.picocontainer.ComponentAdapter
ComponentAdapter.NOTHING
-
-
Field Summary
-
Fields inherited from class org.picocontainer.behaviors.AbstractBehavior
delegate
-
-
Constructor Summary
Constructors Constructor Description Stored(ComponentAdapter<T> delegate, ObjectReference<Stored.Instance<T>> reference)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancomponentHasLifecycle()Invokes delegate hasLifecycle method if the delegate is a Behavior Invokes delegate hasLifecycle method if the delegate is a Behavior Test if a component honors a lifecycle.voiddispose(PicoContainer container)Disposes the cached component instance Invokes delegate dispose method if the delegate is a Behavior Invoke the "dispose" method on the component.voidflush()Flushes the cache.TgetComponentInstance(PicoContainer container, java.lang.reflect.Type into)Retrieve the component instance.java.lang.StringgetDescriptor()Get a string key descriptor of the component adapter for use in toString()protected java.lang.StringgetLifecycleDescriptor()TgetStoredObject()Retrieves the stored reference.booleanisStarted()voidstart(PicoContainer container)Starts the cached component instance Invokes delegate start method if the delegate is a Behavior Invoke the "start" method on the component.voidstop(PicoContainer container)Stops the cached component instance Invokes delegate stop method if the delegate is a Behavior Invoke the "stop" method on the component.-
Methods inherited from class org.picocontainer.behaviors.AbstractBehavior
accept, changeMonitor, currentMonitor, dispose, findAdapterOfType, getComponentImplementation, getComponentInstance, getComponentKey, getDelegate, hasLifecycle, isLazy, start, stop, toString, verify
-
-
-
-
Constructor Detail
-
Stored
public Stored(ComponentAdapter<T> delegate, ObjectReference<Stored.Instance<T>> reference)
-
-
Method Detail
-
componentHasLifecycle
public boolean componentHasLifecycle()
Description copied from class:AbstractBehaviorInvokes delegate hasLifecycle method if the delegate is a Behavior Test if a component honors a lifecycle.- Specified by:
componentHasLifecyclein interfaceComponentLifecycle<T>- Overrides:
componentHasLifecyclein classAbstractBehavior<T>- Returns:
trueif the component has a lifecycle
-
dispose
public void dispose(PicoContainer container)
Disposes the cached component instance Invokes delegate dispose method if the delegate is a Behavior Invoke the "dispose" method on the component.- Specified by:
disposein interfaceComponentLifecycle<T>- Overrides:
disposein classAbstractBehavior<T>- Parameters:
container- the container to "dispose" the component
-
getStoredObject
public T getStoredObject()
Retrieves the stored reference. May be null if it has never been set, or possibly if the reference has been flushed.- Returns:
- the stored object or null.
-
flush
public void flush()
Flushes the cache. If the component instance is started is will stop and dispose it before flushing the cache.
-
getComponentInstance
public T getComponentInstance(PicoContainer container, java.lang.reflect.Type into) throws PicoCompositionException
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 classAbstractBehavior<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.
-
getDescriptor
public java.lang.String getDescriptor()
Description copied from interface:ComponentAdapterGet a string key descriptor of the component adapter for use in toString()- Returns:
- the descriptor
-
getLifecycleDescriptor
protected java.lang.String getLifecycleDescriptor()
-
start
public void start(PicoContainer container)
Starts the cached component instance Invokes delegate start method if the delegate is a Behavior Invoke the "start" method on the component.- Specified by:
startin interfaceComponentLifecycle<T>- Overrides:
startin classAbstractBehavior<T>- Parameters:
container- the container to "start" the component
-
stop
public void stop(PicoContainer container)
Stops the cached component instance Invokes delegate stop method if the delegate is a Behavior Invoke the "stop" method on the component.- Specified by:
stopin interfaceComponentLifecycle<T>- Overrides:
stopin classAbstractBehavior<T>- Parameters:
container- the container to "stop" the component
-
isStarted
public boolean isStarted()
- Specified by:
isStartedin interfaceComponentLifecycle<T>- Overrides:
isStartedin classAbstractBehavior<T>
-
-