01: /*
02: * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
03: */
04: package com.tc.aspectwerkz.intercept;
05:
06: /**
07: * The advisable interface is introduced to target class made advisable.
08: * </p>
09: * Note: user should ensure that the target class has no user defined method named aw_addAdvice
10: * and aw_removeAdvice. Other methods are made synthetic and thus will not lead to name clashes.
11: *
12: * @author <a href="mailto:jboner@codehaus.org">Jonas Bonér </a>
13: */
14: public interface Advisable {
15:
16: /**
17: * @param pointcut
18: * @param advice
19: */
20: void aw_addAdvice(String pointcut, Advice advice);
21:
22: /**
23: * @param pointcut
24: * @param adviceClass
25: */
26: void aw_removeAdvice(String pointcut, Class adviceClass);
27:
28: /**
29: * @param joinPointIndex
30: * @return
31: */
32: AroundAdvice[] aw$getAroundAdvice(final int joinPointIndex);
33:
34: /**
35: * @param joinPointIndex
36: * @return
37: */
38: BeforeAdvice[] aw$getBeforeAdvice(final int joinPointIndex);
39:
40: /**
41: * @param joinPointIndex
42: * @return
43: */
44: AfterAdvice[] aw$getAfterAdvice(final int joinPointIndex);
45:
46: /**
47: * @param joinPointIndex
48: * @return
49: */
50: AfterReturningAdvice[] aw$getAfterReturningAdvice(
51: final int joinPointIndex);
52:
53: /**
54: * @param joinPointIndex
55: * @return
56: */
57: AfterThrowingAdvice[] aw$getAfterThrowingAdvice(
58: final int joinPointIndex);
59: }
|