1 package com.tirsen.nanning.samples.prevayler; 2 3 import java.lang.reflect.Method ; 4 5 import com.tirsen.nanning.AspectInstance; 6 import com.tirsen.nanning.MixinInstance; 7 import com.tirsen.nanning.attribute.Attributes; 8 import com.tirsen.nanning.config.Aspect; 9 import com.tirsen.nanning.config.AttributePointcut; 10 11 17 public class PrevaylerAspect implements Aspect { 18 private TransactionUnsupportedInterceptor unsupportedInterceptor; 19 private CheckTransactionUnsupportedInterceptor checkUnsupportedInterceptor; 20 private PrevaylerInterceptor prevaylerInterceptor; 21 private RegisterObjectInterceptor registerObjectInterceptor; 22 23 private AttributePointcut transactionUnsupportedPointcut = new AttributePointcut("transaction-unsupported"); 24 private AttributePointcut transactionPointcut = new AttributePointcut("transaction"); 25 26 public PrevaylerAspect() { 27 this(false); 28 } 29 30 public PrevaylerAspect(boolean useIdentification) { 31 unsupportedInterceptor = new TransactionUnsupportedInterceptor(); 32 checkUnsupportedInterceptor = new CheckTransactionUnsupportedInterceptor(); 33 prevaylerInterceptor = new PrevaylerInterceptor(useIdentification); 34 35 if (useIdentification) { 36 registerObjectInterceptor = new RegisterObjectInterceptor(); 37 } 38 } 39 40 public void advise(AspectInstance aspectInstance) { 41 transactionUnsupportedPointcut.advise(aspectInstance, unsupportedInterceptor); 42 transactionPointcut.advise(aspectInstance, checkUnsupportedInterceptor); 43 transactionPointcut.advise(aspectInstance, prevaylerInterceptor); 44 45 if (registerObjectInterceptor != null && PrevaylerUtils.isEntity(aspectInstance.getClassIdentifier())) { 46 aspectInstance.addConstructionInterceptor(registerObjectInterceptor); 47 } 48 } 49 50 public void introduce(AspectInstance aspectInstance) { 51 } 52 } 53 | Popular Tags |