org.picocontainer
Interface ComponentAdapter

All Known Implementing Classes:
AbstractComponentAdapter, BeanPropertyComponentAdapter, CachingComponentAdapter, ConstructorInjectionComponentAdapter, DecoratingComponentAdapter, ImplementationHidingComponentAdapter, ImplementationHidingComponentAdapter, InstanceComponentAdapter, InstantiatingComponentAdapter, MonitoringComponentAdapter, SetterInjectionComponentAdapter, SynchronizedComponentAdapter

public interface ComponentAdapter

A component adapter is responsible for providing a specific component instance. An instance of an implementation of this interface is used inside a PicoContainer for every registered component or instance. Each ComponentAdapter instance has to have a key which is unique within that container. The key itself is either a class type (normally an interface) or an identifier.

Since:
1.0
Version:
$Revision: 1801 $
Author:
Jon Tirsén, Paul Hammant, Aslak Hellesøy
See Also:
an extension of the PicoContainer interface which allows you to modify the contents of the container.

Method Summary
 void accept(PicoVisitor visitor)
          Accepts a visitor for this ComponentAdapter.
 java.lang.Class getComponentImplementation()
          Retrieve the class of the component.
 java.lang.Object getComponentInstance(PicoContainer container)
          Retrieve the component instance.
 java.lang.Object getComponentKey()
          Retrieve the key associated with the component.
 void verify(PicoContainer container)
          Verify that all dependencies for this adapter can be satisifed.
 

Method Detail

getComponentKey

java.lang.Object getComponentKey()
Retrieve the key associated with the component.

Returns:
the component's key. Should either be a class type (normally an interface) or an identifier that is unique (within the scope of the current PicoContainer).

getComponentImplementation

java.lang.Class getComponentImplementation()
Retrieve the class of the component.

Returns:
the component's implementation class. Should normally be a concrete class (ie, a class that can be instantiated).

getComponentInstance

java.lang.Object getComponentInstance(PicoContainer container)
                                      throws PicoInitializationException,
                                             PicoIntrospectionException
Retrieve the component instance. This method will usually create a new instance each time it is called, but that is not required. For example, CachingComponentAdapter will always return the same instance.

Parameters:
container - the PicoContainer, that is used to resolve any possible dependencies of the instance.
Returns:
the component instance.
Throws:
PicoInitializationException - if the component could not be instantiated.
PicoIntrospectionException - if the component has dependencies which could not be resolved, or instantiation of the component lead to an ambigous situation within the container.

verify

void verify(PicoContainer container)
            throws PicoIntrospectionException
Verify that all dependencies for this adapter can be satisifed. Normally, the adapter should verify this by checking that the associated PicoContainer contains all the needed dependnecies.

Parameters:
container - the PicoContainer, that is used to resolve any possible dependencies of the instance.
Throws:
PicoIntrospectionException - if one or more dependencies cannot be resolved.

accept

void accept(PicoVisitor visitor)
Accepts a visitor for this ComponentAdapter. The method is normally called by visiting a PicoContainer, that cascades the visitor also down to all its ComponentAdapter instances.

Parameters:
visitor - the visitor.
Since:
1.1