KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tirsen > nanning > samples > prevayler > PrevaylerAspect


1 package com.tirsen.nanning.samples.prevayler;
2
3 import java.lang.reflect.Method JavaDoc;
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 /**
12  * TODO document PrevaylerInterceptor
13  *
14  * @author <a HREF="mailto:jon_tirsen@yahoo.com">Jon Tirsen</a>
15  * @version $Revision: 1.12 $
16  */

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