01: /**************************************************************************************
02: * Copyright (c) Jonas BonŽr, Alexandre Vasseur. All rights reserved. *
03: * http://aspectwerkz.codehaus.org *
04: * ---------------------------------------------------------------------------------- *
05: * The software in this package is published under the terms of the LGPL license *
06: * a copy of which has been included with this distribution in the license.txt file. *
07: **************************************************************************************/package test.reflection;
08:
09: import org.codehaus.aspectwerkz.definition.Pointcut;
10: import org.codehaus.aspectwerkz.definition.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: }
|