org.picocontainer.adapters
Class InstanceAdapter<T>

java.lang.Object
  extended by org.picocontainer.adapters.AbstractAdapter<T>
      extended by org.picocontainer.adapters.InstanceAdapter<T>
All Implemented Interfaces:
Serializable, Behavior<T>, ComponentAdapter<T>, ComponentMonitorStrategy, LifecycleStrategy

public final class InstanceAdapter<T>
extends AbstractAdapter<T>
implements Behavior<T>, LifecycleStrategy

Component adapter which wraps a component instance.

This component adapter supports both a Behavior and a LifecycleStrategy to control the lifecycle of the component. The lifecycle manager methods simply delegate to the lifecycle strategy methods on the component instance.

Author:
Aslak Hellesøy, Paul Hammant, Mauro Talevi
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.picocontainer.ComponentAdapter
ComponentAdapter.NOTHING
 
Constructor Summary
InstanceAdapter(Object componentKey, T componentInstance)
           
InstanceAdapter(Object componentKey, T componentInstance, ComponentMonitor componentMonitor)
           
InstanceAdapter(Object componentKey, T componentInstance, LifecycleStrategy lifecycleStrategy)
           
InstanceAdapter(Object componentKey, T componentInstance, LifecycleStrategy lifecycleStrategy, ComponentMonitor componentMonitor)
           
 
Method Summary
 boolean componentHasLifecycle()
          Test if a component honors a lifecycle.
 void dispose(Object component)
          Invoke the "dispose" method on the component instance if this is disposable.
 void dispose(PicoContainer container)
          Invoke the "dispose" method on the component.
 T getComponentInstance(PicoContainer container, Type into)
          Retrieve the component instance.
 String getDescriptor()
          Get a string key descriptor of the component adapter.
 boolean hasLifecycle(Class type)
          Test if a component instance has a lifecycle.
 void start(Object component)
          Invoke the "start" method on the component instance if this is startable.
 void start(PicoContainer container)
          Invoke the "start" method on the component.
 void stop(Object component)
          Invoke the "stop" method on the component instance if this is stoppable.
 void stop(PicoContainer container)
          Invoke the "stop" method on the component.
 void verify(PicoContainer container)
          Verify that all dependencies for this adapter can be satisfied.
 
Methods inherited from class org.picocontainer.adapters.AbstractAdapter
accept, changeMonitor, checkTypeCompatibility, currentMonitor, findAdapterOfType, getComponentImplementation, getComponentInstance, getComponentKey, getDelegate, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.picocontainer.ComponentAdapter
accept, findAdapterOfType, getComponentImplementation, getComponentInstance, getComponentKey, getDelegate
 

Constructor Detail

InstanceAdapter

public InstanceAdapter(Object componentKey,
                       T componentInstance,
                       LifecycleStrategy lifecycleStrategy,
                       ComponentMonitor componentMonitor)
                throws PicoCompositionException
Throws:
PicoCompositionException

InstanceAdapter

public InstanceAdapter(Object componentKey,
                       T componentInstance)

InstanceAdapter

public InstanceAdapter(Object componentKey,
                       T componentInstance,
                       LifecycleStrategy lifecycleStrategy)

InstanceAdapter

public InstanceAdapter(Object componentKey,
                       T componentInstance,
                       ComponentMonitor componentMonitor)
Method Detail

getComponentInstance

public T getComponentInstance(PicoContainer container,
                              Type into)
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 interface ComponentAdapter<T>
Parameters:
container - the PicoContainer, 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.

verify

public void verify(PicoContainer container)
Description copied from interface: ComponentAdapter
Verify 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:
verify in interface ComponentAdapter<T>
Parameters:
container - the PicoContainer, that is used to resolve any possible dependencies of the instance.

getDescriptor

public String getDescriptor()
Description copied from interface: ComponentAdapter
Get a string key descriptor of the component adapter.

Specified by:
getDescriptor in interface ComponentAdapter<T>
Returns:

start

public void start(PicoContainer container)
Description copied from interface: Behavior
Invoke the "start" method on the component.

Specified by:
start in interface Behavior<T>
Parameters:
container - the container to "start" the component

stop

public void stop(PicoContainer container)
Description copied from interface: Behavior
Invoke the "stop" method on the component.

Specified by:
stop in interface Behavior<T>
Parameters:
container - the container to "stop" the component

dispose

public void dispose(PicoContainer container)
Description copied from interface: Behavior
Invoke the "dispose" method on the component.

Specified by:
dispose in interface Behavior<T>
Parameters:
container - the container to "dispose" the component

componentHasLifecycle

public boolean componentHasLifecycle()
Description copied from interface: Behavior
Test if a component honors a lifecycle.

Specified by:
componentHasLifecycle in interface Behavior<T>
Returns:
true if the component has a lifecycle

start

public void start(Object component)
Description copied from interface: LifecycleStrategy
Invoke the "start" method on the component instance if this is startable. It is up to the implementation of the strategy what "start" and "startable" means.

Specified by:
start in interface LifecycleStrategy
Parameters:
component - the instance of the component to start

stop

public void stop(Object component)
Description copied from interface: LifecycleStrategy
Invoke the "stop" method on the component instance if this is stoppable. It is up to the implementation of the strategy what "stop" and "stoppable" means.

Specified by:
stop in interface LifecycleStrategy
Parameters:
component - the instance of the component to stop

dispose

public void dispose(Object component)
Description copied from interface: LifecycleStrategy
Invoke the "dispose" method on the component instance if this is disposable. It is up to the implementation of the strategy what "dispose" and "disposable" means.

Specified by:
dispose in interface LifecycleStrategy
Parameters:
component - the instance of the component to dispose

hasLifecycle

public boolean hasLifecycle(Class type)
Description copied from interface: LifecycleStrategy
Test if a component instance has a lifecycle.

Specified by:
hasLifecycle in interface LifecycleStrategy
Parameters:
type - the component's type
Returns:
true if the component has a lifecycle


Copyright © 2003-2010 Codehaus. All Rights Reserved.