org.picocontainer.defaults
Class DefaultComponentAdapterFactory

java.lang.Object
  extended by org.picocontainer.defaults.MonitoringComponentAdapterFactory
      extended by org.picocontainer.defaults.DefaultComponentAdapterFactory
All Implemented Interfaces:
java.io.Serializable, ComponentAdapterFactory, ComponentMonitorStrategy

public class DefaultComponentAdapterFactory
extends MonitoringComponentAdapterFactory

Creates instances of ConstructorInjectionComponentAdapter decorated by CachingComponentAdapter.

Version:
$Revision: 2779 $
Author:
Jon Tirsén, Aslak Hellesøy
See Also:
Serialized Form

Field Summary
private  LifecycleStrategy lifecycleStrategy
           
 
Constructor Summary
DefaultComponentAdapterFactory()
           
DefaultComponentAdapterFactory(ComponentMonitor monitor)
           
DefaultComponentAdapterFactory(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy)
           
 
Method Summary
 void changeMonitor(ComponentMonitor monitor)
          Changes the component monitor used
 ComponentAdapter createComponentAdapter(java.lang.Object componentKey, java.lang.Class componentImplementation, Parameter[] parameters)
          Create a new component adapter based on the specified arguments.
 
Methods inherited from class org.picocontainer.defaults.MonitoringComponentAdapterFactory
currentMonitor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

lifecycleStrategy

private final LifecycleStrategy lifecycleStrategy
Constructor Detail

DefaultComponentAdapterFactory

public DefaultComponentAdapterFactory(ComponentMonitor monitor)

DefaultComponentAdapterFactory

public DefaultComponentAdapterFactory(ComponentMonitor monitor,
                                      LifecycleStrategy lifecycleStrategy)

DefaultComponentAdapterFactory

public DefaultComponentAdapterFactory()
Method Detail

createComponentAdapter

public ComponentAdapter createComponentAdapter(java.lang.Object componentKey,
                                               java.lang.Class componentImplementation,
                                               Parameter[] parameters)
                                        throws PicoIntrospectionException,
                                               AssignabilityRegistrationException,
                                               NotConcreteRegistrationException
Description copied from interface: ComponentAdapterFactory
Create a new component adapter based on the specified arguments.

Parameters:
componentKey - the key to be associated with this adapter. This value should be returned from a call to ComponentAdapter.getComponentKey() on the created adapter.
componentImplementation - the implementation class to be associated with this adapter. This value should be returned from a call to ComponentAdapter.getComponentImplementation() on the created adapter. Should not be null.
parameters - additional parameters to use by the component adapter in constructing component instances. These may be used, for example, to make decisions about the arguments passed into the component constructor. These should be considered hints; they may be ignored by some implementations. May be null, and may be of zero length.
Returns:
a new component adapter based on the specified arguments. Should not return null.
Throws:
PicoIntrospectionException - if the creation of the component adapter results in a PicoIntrospectionException.
AssignabilityRegistrationException - if the creation of the component adapter results in a AssignabilityRegistrationException.
NotConcreteRegistrationException - if the creation of the component adapter results in a NotConcreteRegistrationException.

changeMonitor

public void changeMonitor(ComponentMonitor monitor)
Description copied from interface: ComponentMonitorStrategy
Changes the component monitor used

Specified by:
changeMonitor in interface ComponentMonitorStrategy
Overrides:
changeMonitor in class MonitoringComponentAdapterFactory
Parameters:
monitor - the new ComponentMonitor to use