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.afterxxx;
9   
10  import org.codehaus.aspectwerkz.joinpoint.StaticJoinPoint;
11  import org.codehaus.aspectwerkz.Pointcut;
12  
13  /***
14   * @author <a href="mailto:jboner@codehaus.org">Jonas Bonér </a>
15   */
16  public class Aspect {
17  
18      /***
19       * @Expression execution(* test.afterxxx.Test.all(..))
20       */
21      Pointcut all;
22  
23      /***
24       * @Expression execution(* test.afterxxx.Test.aroundFinally(..))
25       */
26      Pointcut aroundFinally;
27  
28      /***
29       * @Expression execution(* test.afterxxx.Test.aroundReturning(..))
30       */
31      Pointcut aroundReturning;
32  
33      /***
34       * @Expression execution(* test.afterxxx.Test.aroundFinallyReturning(..))
35       */
36      Pointcut aroundFinallyReturning;
37  
38      /***
39       * @Expression execution(* test.afterxxx.Test.aroundFinallyReturningThrowing(..))
40       */
41      Pointcut aroundFinallyReturningThrowing;
42  
43      /***
44       * @Expression execution(* test.afterxxx.Test.aroundReturningThrowing(..))
45       */
46      Pointcut aroundReturningThrowing;
47  
48      /***
49       * @Expression execution(* test.afterxxx.Test._finally(..))
50       */
51      Pointcut _finally;
52  
53      /***
54       * @Expression execution(* test.afterxxx.Test.finallyReturning(..))
55       */
56      Pointcut finallyReturning;
57  
58      /***
59       * @Expression execution(* test.afterxxx.Test.finallyReturningThrowing(..))
60       */
61      Pointcut finallyReturningThrowing;
62  
63      /***
64       * @Expression execution(* test.afterxxx.Test.returning(..))
65       */
66      Pointcut returning;
67  
68      /***
69       * @Expression execution(* test.afterxxx.Test.returningThrowing(..))
70       */
71      Pointcut returningThrowing;
72  
73      /***
74       * @Around all || aroundFinally || aroundFinallyReturning ||
75       *         aroundFinallyReturningThrowing || aroundReturningThrowing || aroundReturning
76       */
77      public Object logAround(StaticJoinPoint joinPoint) throws Throwable {
78          Test.log("logAround ");
79          final Object result = joinPoint.proceed();
80          return result;
81      }
82  
83      /***
84       * @After returning(java.lang.String) aroundFinallyReturning || aroundFinallyReturningThrowing ||
85       *                                    aroundReturningThrowing || finallyReturning || finallyReturningThrowing ||
86       *                                    returningThrowing || aroundReturning || returning
87       */
88      public void logAfterReturning(final StaticJoinPoint joinPoint) throws Throwable {
89          Test.log("logAfterReturning ");
90      }
91  
92      /***
93       * @After throwing(java.lang.RuntimeException) aroundFinallyReturningThrowing || aroundReturningThrowing ||
94       *                                             finallyReturningThrowing || returningThrowing
95       */
96      public void logAfterThrowing(final StaticJoinPoint joinPoint) throws Throwable {
97          Test.log("logAfterThrowing ");
98      }
99  
100     /***
101      * @After finally aroundFinally || aroundFinallyReturning || aroundFinallyReturningThrowing ||
102      *                _finally || finallyReturning || finallyReturningThrowing
103      */
104     public void logAfterFinally(final StaticJoinPoint joinPoint) throws Throwable {
105         Test.log("logAfterFinally ");
106     }
107 }