1 /***************************************************************************************
2 * Copyright (c) Jonas Bonér, Alexandre Vasseur. All rights reserved. *
3 * http://aspectwerkz.codehaus.org *
4 * ---------------------------------------------------------------------------------- *
5 * The software in this package is published under the terms of the LGPL license *
6 * a copy of which has been included with this distribution in the license.txt file. *
7 **************************************************************************************/
8 package test.pointcutexpression;
9
10 import org.codehaus.aspectwerkz.Pointcut;
11 import org.codehaus.aspectwerkz.joinpoint.JoinPoint;
12
13 /***
14 * @author <a href="mailto:jboner@codehaus.org">Jonas Bonér </a>
15 * @Aspect
16 */
17 public class TestAspect {
18 /***
19 * @Expression execution(void test.pointcutexpression.PointcutExpressionTest.A())
20 */
21 Pointcut A;
22
23 /***
24 * @Expression execution(void test.pointcutexpression.PointcutExpressionTest.B())
25 */
26 Pointcut B;
27
28 /***
29 * @Expression execution(void test.pointcutexpression.PointcutExpressionTest.C())
30 */
31 Pointcut C;
32
33 /***
34 * @Expression execution(void test.pointcutexpression.PointcutExpressionTest.D())
35 */
36 Pointcut D;
37
38 /***
39 * @Expression execution(void test.pointcutexpression.PointcutExpressionTest.E())
40 */
41 Pointcut E;
42
43 /***
44 * @Expression execution(void test.pointcutexpression.PointcutExpressionTest.F())
45 */
46 Pointcut F;
47
48 /***
49 * @Expression execution(void test.pointcutexpression.PointcutExpressionTest.G())
50 */
51 Pointcut G;
52
53 /***
54 * @Expression execution(void test.pointcutexpression.PointcutExpressionTest.H())
55 */
56 Pointcut H;
57
58 /***
59 * @Expression execution(void test.pointcutexpression.PointcutExpressionTest.I())
60 */
61 Pointcut I;
62
63 /***
64 * @Expression execution(void test.pointcutexpression.PointcutExpressionTest.J())
65 */
66 Pointcut J;
67
68 /***
69 * @Expression execution(void test.pointcutexpression.PointcutExpressionTest.K())
70 */
71 Pointcut K;
72
73 /***
74 * @Expression execution(void test.pointcutexpression.PointcutExpressionTest.L())
75 */
76 Pointcut L;
77
78 /***
79 * @Expression execution(void test.pointcutexpression.PointcutExpressionTest.M())
80 */
81 Pointcut M;
82
83 /***
84 * @Expression execution(void test.pointcutexpression.PointcutExpressionTest.N())
85 */
86 Pointcut N;
87
88 /***
89 * @Expression execution(void test.pointcutexpression.PointcutExpressionTest.O())
90 */
91 Pointcut O;
92
93 /***
94 * @Around B || C
95 */
96 public Object advice1(final JoinPoint joinPoint) throws Throwable {
97 PointcutExpressionTest.log("before1 ");
98 final Object result = joinPoint.proceed();
99 PointcutExpressionTest.log("after1 ");
100 return result;
101 }
102
103 /***
104 * @Around D && !E
105 */
106 public Object advice2(final JoinPoint joinPoint) throws Throwable {
107 PointcutExpressionTest.log("before1 ");
108 final Object result = joinPoint.proceed();
109 PointcutExpressionTest.log("after1 ");
110 return result;
111 }
112
113 /***
114 * @Around (F || G) && H
115 */
116 public Object advice3(final JoinPoint joinPoint) throws Throwable {
117 PointcutExpressionTest.log("before1 ");
118 final Object result = joinPoint.proceed();
119 PointcutExpressionTest.log("after1 ");
120 return result;
121 }
122
123 /***
124 * @Around (I || J)
125 */
126 public Object advice4(final JoinPoint joinPoint) throws Throwable {
127 PointcutExpressionTest.log("before1 ");
128 final Object result = joinPoint.proceed();
129 PointcutExpressionTest.log("after1 ");
130 return result;
131 }
132
133 /***
134 * @Around !K && !(L || M) && N
135 */
136 public Object advice5(final JoinPoint joinPoint) throws Throwable {
137 PointcutExpressionTest.log("before1 ");
138 final Object result = joinPoint.proceed();
139 PointcutExpressionTest.log("after1 ");
140 return result;
141 }
142
143 /***
144 * @Around O
145 */
146 public Object advice6(final JoinPoint joinPoint) throws Throwable {
147 PointcutExpressionTest.log("before1 ");
148 final Object result = joinPoint.proceed();
149 PointcutExpressionTest.log("after1 ");
150 return result;
151 }
152 }