org.picocontainer.gems.adapters
Class AssimilatingComponentAdapterFactory

java.lang.Object
  extended by org.picocontainer.defaults.MonitoringComponentAdapterFactory
      extended by org.picocontainer.defaults.DecoratingComponentAdapterFactory
          extended by org.picocontainer.gems.adapters.AssimilatingComponentAdapterFactory
All Implemented Interfaces:
java.io.Serializable, org.picocontainer.defaults.ComponentAdapterFactory, org.picocontainer.defaults.ComponentMonitorStrategy

public class AssimilatingComponentAdapterFactory
extends org.picocontainer.defaults.DecoratingComponentAdapterFactory

Factory for the AssimilatingComponentAdapter. This factory will create AssimilatingComponentAdapter instances for all ComponentAdapter instances created by the delegate. This will assimilate every component for a specific type.

Since:
1.2
Author:
Jörg Schaible
See Also:
Serialized Form

Field Summary
private  java.lang.Class assimilationType
           
private  com.thoughtworks.proxy.ProxyFactory proxyFactory
           
 
Constructor Summary
AssimilatingComponentAdapterFactory(org.picocontainer.defaults.ComponentAdapterFactory delegate, java.lang.Class type)
          Construct an AssimilatingComponentAdapterFactory.
AssimilatingComponentAdapterFactory(org.picocontainer.defaults.ComponentAdapterFactory delegate, java.lang.Class type, com.thoughtworks.proxy.ProxyFactory proxyFactory)
          Construct an AssimilatingComponentAdapterFactory using a special ProxyFactory.
 
Method Summary
 org.picocontainer.ComponentAdapter createComponentAdapter(java.lang.Object componentKey, java.lang.Class componentImplementation, org.picocontainer.Parameter[] parameters)
          Create a AssimilatingComponentAdapter.
 
Methods inherited from class org.picocontainer.defaults.MonitoringComponentAdapterFactory
changeMonitor, currentMonitor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

proxyFactory

private final com.thoughtworks.proxy.ProxyFactory proxyFactory

assimilationType

private final java.lang.Class assimilationType
Constructor Detail

AssimilatingComponentAdapterFactory

public AssimilatingComponentAdapterFactory(org.picocontainer.defaults.ComponentAdapterFactory delegate,
                                           java.lang.Class type)
Construct an AssimilatingComponentAdapterFactory. The instance will use the StandardProxyFactory using the JDK implementation.

Parameters:
delegate - The delegated ComponentAdapterFactory.
type - The assimilated type.

AssimilatingComponentAdapterFactory

public AssimilatingComponentAdapterFactory(org.picocontainer.defaults.ComponentAdapterFactory delegate,
                                           java.lang.Class type,
                                           com.thoughtworks.proxy.ProxyFactory proxyFactory)
Construct an AssimilatingComponentAdapterFactory using a special ProxyFactory.

Parameters:
delegate - The delegated ComponentAdapterFactory.
type - The assimilated type.
proxyFactory - The proxy factory to use.
Method Detail

createComponentAdapter

public org.picocontainer.ComponentAdapter createComponentAdapter(java.lang.Object componentKey,
                                                                 java.lang.Class componentImplementation,
                                                                 org.picocontainer.Parameter[] parameters)
                                                          throws org.picocontainer.PicoIntrospectionException,
                                                                 org.picocontainer.defaults.AssignabilityRegistrationException,
                                                                 org.picocontainer.defaults.NotConcreteRegistrationException
Create a AssimilatingComponentAdapter. This adapter will wrap the returned ComponentAdapter of the deleated ComponentAdapterFactory.

Specified by:
createComponentAdapter in interface org.picocontainer.defaults.ComponentAdapterFactory
Overrides:
createComponentAdapter in class org.picocontainer.defaults.DecoratingComponentAdapterFactory
Throws:
org.picocontainer.PicoIntrospectionException
org.picocontainer.defaults.AssignabilityRegistrationException
org.picocontainer.defaults.NotConcreteRegistrationException
See Also:
DecoratingComponentAdapterFactory.createComponentAdapter(java.lang.Object, java.lang.Class, org.picocontainer.Parameter[])