1 10 package org.nanocontainer.aop.dynaop; 11 12 import dynaop.Aspects; 13 import dynaop.Interceptor; 14 import dynaop.InterceptorFactory; 15 import dynaop.MethodPointcut; 16 import dynaop.Pointcuts; 17 import org.nanocontainer.aop.ComponentPointcut; 18 19 26 class InterceptorComponentAspect extends ComponentAspect { 27 28 private MethodPointcut methodPointcut; 29 private Interceptor interceptor; 30 private InterceptorFactory interceptorFactory; 31 32 40 InterceptorComponentAspect(ComponentPointcut componentPointcut, MethodPointcut methodPointcut, 41 Interceptor interceptor) { 42 super(componentPointcut); 43 this.methodPointcut = methodPointcut; 44 this.interceptor = interceptor; 45 } 46 47 55 InterceptorComponentAspect(ComponentPointcut componentPointcut, MethodPointcut methodPointcut, 56 InterceptorFactory interceptorFactory) { 57 super(componentPointcut); 58 this.methodPointcut = methodPointcut; 59 this.interceptorFactory = interceptorFactory; 60 } 61 62 void doRegisterAspect(Object componentKey, Aspects aspects) { 63 if (interceptor != null) { 64 aspects.interceptor(Pointcuts.ALL_CLASSES, methodPointcut, interceptor); 65 } else { 66 aspects.interceptor(Pointcuts.ALL_CLASSES, methodPointcut, interceptorFactory); 67 } 68 } 69 70 } | Popular Tags |