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.reflection;
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(* test.reflection.*2.*(..))
21 */
22 Pointcut test1_exclude;
23
24 /***
25 * @Expression execution(* test.reflection.*.incr(..))
26 */
27 Pointcut test1;
28
29 /***
30 * @Expression execution(* test.reflection.*.incrStatic(..))
31 */
32 Pointcut test1Static;
33
34 /***
35 * @Expression execution(* test.reflection.Super2.incr(..))
36 */
37 Pointcut test2;
38
39 /***
40 * @Expression execution(* test.reflection.Super2.incrStatic(..))
41 */
42 Pointcut test2Static;
43
44 /***
45 * @Expression execution(* test.reflection.*.do*(..))
46 */
47 Pointcut test3;
48
49 /***
50 * @Around test1 && !test1_exclude
51 */
52 public Object execute1(final JoinPoint jp) throws Throwable {
53 Integer result = (Integer) jp.proceed();
54 return new Integer(-1 * result.intValue());
55 }
56
57 /***
58 * @Around test1Static && !test1_exclude
59 */
60 public Object execute2(final JoinPoint jp) throws Throwable {
61 Integer result = (Integer) jp.proceed();
62 return new Integer(-1 * result.intValue());
63 }
64
65 /***
66 * @Around test2
67 */
68 public Object execute3(final JoinPoint jp) throws Throwable {
69 Integer result = (Integer) jp.proceed();
70 return new Integer(-1 * result.intValue());
71 }
72
73 /***
74 * @Around test2Static
75 */
76 public Object execute4(final JoinPoint jp) throws Throwable {
77 Integer result = (Integer) jp.proceed();
78 return new Integer(-1 * result.intValue());
79 }
80
81 /***
82 * @Around test3
83 */
84 public Object execute5(final JoinPoint jp) throws Throwable {
85 Integer result = (Integer) jp.proceed();
86 return new Integer(-1 * result.intValue());
87 }
88 }