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 }