1 10 11 package org.picocontainer.gems.adapters; 12 13 import com.thoughtworks.proxy.ProxyFactory; 14 import com.thoughtworks.proxy.factory.StandardProxyFactory; 15 16 import org.picocontainer.ComponentAdapter; 17 import org.picocontainer.Parameter; 18 import org.picocontainer.PicoIntrospectionException; 19 import org.picocontainer.defaults.AssignabilityRegistrationException; 20 import org.picocontainer.defaults.ComponentAdapterFactory; 21 import org.picocontainer.defaults.DecoratingComponentAdapterFactory; 22 import org.picocontainer.defaults.NotConcreteRegistrationException; 23 24 25 32 public class AssimilatingComponentAdapterFactory extends DecoratingComponentAdapterFactory { 33 34 private final ProxyFactory proxyFactory; 35 private final Class assimilationType; 36 37 44 public AssimilatingComponentAdapterFactory(final ComponentAdapterFactory delegate, final Class type) { 45 this(delegate, type, new StandardProxyFactory()); 46 } 47 48 55 public AssimilatingComponentAdapterFactory( 56 final ComponentAdapterFactory delegate, final Class type, final ProxyFactory proxyFactory) { 57 super(delegate); 58 this.assimilationType = type; 59 this.proxyFactory = proxyFactory; 60 } 61 62 69 public ComponentAdapter createComponentAdapter( 70 final Object componentKey, final Class componentImplementation, final Parameter[] parameters) 71 throws PicoIntrospectionException, AssignabilityRegistrationException, NotConcreteRegistrationException { 72 return new AssimilatingComponentAdapter(assimilationType, super.createComponentAdapter( 73 componentKey, componentImplementation, parameters), proxyFactory); 74 } 75 } 76 | Popular Tags |