View Javadoc
1 package org.codehaus.nanning.config; 2 3 import org.codehaus.nanning.AspectException; 4 import org.codehaus.nanning.AspectInstance; 5 import org.codehaus.nanning.Mixin; 6 7 public class MixinAspect extends AbstractAspect { 8 protected Class interfaceClass; 9 protected Class targetClass; 10 protected Pointcut pointcut; 11 12 public MixinAspect(Class interfaceClass, Class targetClass, Pointcut pointcut) { 13 this.interfaceClass = interfaceClass; 14 this.targetClass = targetClass; 15 this.pointcut = pointcut; 16 } 17 18 public MixinAspect(Class interfaceClass, Class targetClass) { 19 this(interfaceClass, targetClass, P.isClass(interfaceClass)); 20 } 21 22 public void introduce(AspectInstance aspectInstance) { 23 if (shouldIntroduce(aspectInstance)) { 24 Mixin mixinInstance = new Mixin(); 25 mixinInstance.setInterfaceClass(interfaceClass); 26 if (targetClass != null) { 27 try { 28 mixinInstance.setTarget(targetClass.newInstance()); 29 } catch (Exception e) { 30 throw new AspectException("could not instantiate target " + e); 31 } 32 } 33 aspectInstance.addMixin(mixinInstance); 34 } 35 } 36 37 public boolean shouldIntroduce(AspectInstance aspectInstance) { 38 return pointcut.introduceOn(aspectInstance); 39 } 40 41 public Class getInterfaceClass() { 42 return interfaceClass; 43 } 44 45 public Class getTargetClass() { 46 return targetClass; 47 } 48 }

This page was automatically generated by Maven