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