1 10 package org.nanocontainer.aop.defaults; 11 12 import org.nanocontainer.aop.AspectsApplicator; 13 import org.picocontainer.ComponentAdapter; 14 import org.picocontainer.Parameter; 15 import org.picocontainer.PicoIntrospectionException; 16 import org.picocontainer.defaults.AssignabilityRegistrationException; 17 import org.picocontainer.defaults.ComponentAdapterFactory; 18 import org.picocontainer.defaults.DecoratingComponentAdapterFactory; 19 import org.picocontainer.defaults.DefaultComponentAdapterFactory; 20 import org.picocontainer.defaults.NotConcreteRegistrationException; 21 22 28 public class AspectsComponentAdapterFactory extends DecoratingComponentAdapterFactory { 29 30 private final AspectsApplicator aspectsApplicator; 31 32 42 public AspectsComponentAdapterFactory(AspectsApplicator aspectsApplicator, ComponentAdapterFactory delegate) { 43 super(delegate); 44 this.aspectsApplicator = aspectsApplicator; 45 } 46 47 56 public AspectsComponentAdapterFactory(AspectsApplicator aspectsApplicator) { 57 this(aspectsApplicator, new DefaultComponentAdapterFactory()); 58 } 59 60 public ComponentAdapter createComponentAdapter(Object componentKey, Class componentImplementation, 61 Parameter[] parameters) throws PicoIntrospectionException, AssignabilityRegistrationException, 62 NotConcreteRegistrationException { 63 return new AspectsComponentAdapter(aspectsApplicator, super.createComponentAdapter(componentKey, 64 componentImplementation, parameters)); 65 } 66 67 } | Popular Tags |