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