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 class
Stored.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 boolean
componentHasLifecycle()
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.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.void
flush()
Flushes the cache.T
getComponentInstance(PicoContainer container, java.lang.reflect.Type into)
Retrieve the component instance.java.lang.String
getDescriptor()
Get a string key descriptor of the component adapter for use in toString()protected java.lang.String
getLifecycleDescriptor()
T
getStoredObject()
Retrieves the stored reference.boolean
isStarted()
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.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.-
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:AbstractBehavior
Invokes delegate hasLifecycle method if the delegate is a Behavior Test if a component honors a lifecycle.- Specified by:
componentHasLifecycle
in interfaceComponentLifecycle<T>
- Overrides:
componentHasLifecycle
in classAbstractBehavior<T>
- Returns:
true
if 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:
dispose
in interfaceComponentLifecycle<T>
- Overrides:
dispose
in 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:ComponentAdapter
Retrieve the component instance. This method will usually create a new instance each time it is called, but that is not required. For example,Cached
will always return the same instance.- Specified by:
getComponentInstance
in interfaceComponentAdapter<T>
- Overrides:
getComponentInstance
in 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:ComponentAdapter
Get 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:
start
in interfaceComponentLifecycle<T>
- Overrides:
start
in 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:
stop
in interfaceComponentLifecycle<T>
- Overrides:
stop
in classAbstractBehavior<T>
- Parameters:
container
- the container to "stop" the component
-
isStarted
public boolean isStarted()
- Specified by:
isStarted
in interfaceComponentLifecycle<T>
- Overrides:
isStarted
in classAbstractBehavior<T>
-
-