org.picocontainer

Interface ComponentAdapter

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

See Also: an extension of the PicoContainer interface which allows you to modify the contents of the container.

Method Summary
voidaccept(PicoVisitor visitor)
Accepts a visitor for this ComponentAdapter.
ClassgetComponentImplementation()
Retrieve the class of the component.
ObjectgetComponentInstance(PicoContainer container)
Retrieve the component instance.
ObjectgetComponentKey()
Retrieve the key associated with the component.
voidverify(PicoContainer container)
Verify that all dependencies for this adapter can be satisifed.

Method Detail

accept

public 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

getComponentImplementation

public 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

public Object getComponentInstance(PicoContainer container)
Retrieve the component instance. This method will usually create a new instance each time it is called, but that is not required. For example, org.picocontainer.defaults.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.

getComponentKey

public 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).

verify

public void verify(PicoContainer container)
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.