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 org.codehaus.aspectwerkz.joinpoint;
9
10 /***
11 * Implements the join point concept, e.g. defines a well defined point in the program flow.
12 * <p/>
13 * Provides access to runtime type information (RTTI), is therefore significantly <b>slower</b>
14 * than the usage of the {@link org.codehaus.aspectwerkz.joinpoint.StaticJoinPoint} interface.
15 *
16 * @author <a href="mailto:jboner@codehaus.org">Jonas BonŽr </a>
17 */
18 public interface JoinPoint extends StaticJoinPoint {
19
20 /***
21 * Returns the callee instance.
22 *
23 * @return the callee instance
24 */
25 Object getCallee();
26
27 /***
28 * Returns the caller instance.
29 *
30 * @return the caller instance
31 */
32 Object getCaller();
33
34 /***
35 * Returns the 'this' instance (the one currently executing).
36 *
37 * @return 'this'
38 */
39 Object getThis();
40
41 /***
42 * Returns the target instance. If the join point is executing in a static context it returns null.
43 *
44 * @return the target instance
45 */
46 Object getTarget();
47
48 /***
49 * Returns the JoinPoint RTTI
50 *
51 * @return the Rtti
52 */
53 Rtti getRtti();
54 }