1 10 package org.nanocontainer.aop.dynaop; 11 12 import dynaop.Interceptor; 13 import dynaop.InterceptorFactory; 14 import dynaop.Proxy; 15 import org.aopalliance.intercept.MethodInterceptor; 16 import org.picocontainer.PicoContainer; 17 18 import java.util.Properties ; 19 20 28 class ContainerSuppliedInterceptorFactory implements InterceptorFactory { 29 30 private final PicoContainer pico; 31 private final Object interceptorComponentKey; 32 33 43 ContainerSuppliedInterceptorFactory(PicoContainer pico, Object interceptorComponentKey) { 44 this.pico = pico; 45 this.interceptorComponentKey = interceptorComponentKey; 46 } 47 48 57 public Interceptor create(Proxy proxy) throws NullPointerException { 58 MethodInterceptor methodInterceptor = (MethodInterceptor) pico.getComponentInstance(interceptorComponentKey); 59 if (methodInterceptor == null) { 60 throw new NullPointerException ("Interceptor with component key " + interceptorComponentKey 61 + " + not found in PicoContainer"); 62 } 63 return new MethodInterceptorAdapter(methodInterceptor); 64 } 65 66 71 public Properties getProperties() { 72 Properties properties = new Properties (); 73 properties.setProperty("advice", "method interceptor"); 74 properties.setProperty("scope", "per-instance"); 75 return properties; 76 } 77 78 }
| Popular Tags
|