org.picocontainer
Interface ComponentAdapter<T>

All Known Subinterfaces:
Behavior<T>
All Known Implementing Classes:
AbstractAdapter, AbstractBehavior, AbstractInjector, AnnotatedFieldInjector, AnnotatedMethodInjector, Automated, Cached, ConstructorInjector, HiddenImplementation, InstanceAdapter, Intercepted, IterativeInjector, Locked, MethodInjector, MultiInjector, PropertyApplicator, SetterInjector, SingleMemberInjector, Stored, Synchronized, ThreadCached

public interface ComponentAdapter<T>

A component adapter is responsible for providing a specific component instance of type . 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.

Author:
Jon Tirsén, Paul Hammant, Aslak Hellesøy

Method Summary
 void accept(PicoVisitor visitor)
          Accepts a visitor for this ComponentAdapter.
<U extends ComponentAdapter>
U
findAdapterOfType(Class<U> componentAdapterType)
           
 Class<T> getComponentImplementation()
          Retrieve the class of the component.
 T getComponentInstance(PicoContainer container)
          Retrieve the component instance.
 Object getComponentKey()
          Retrieve the key associated with the component.
 ComponentAdapter<T> getDelegate()
           
 void verify(PicoContainer container)
          Verify that all dependencies for this adapter can be satisifed.
 

Method Detail

getComponentKey

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

Class<T> 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

T getComponentInstance(PicoContainer container)
                       throws PicoCompositionException
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.

Parameters:
container - the PicoContainer, that is used to resolve any possible dependencies of the instance.
Returns:
the component instance.
Throws:
PicoCompositionException - if the component could not be instantiated.
PicoCompositionException - 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 PicoCompositionException
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:
PicoCompositionException - 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.

getDelegate

ComponentAdapter<T> getDelegate()

findAdapterOfType

<U extends ComponentAdapter> U findAdapterOfType(Class<U> componentAdapterType)


Copyright © 2003-2007 Codehaus. All Rights Reserved.