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 import org.codehaus.aspectwerkz.joinpoint.management.JoinPointType; 11 12 /*** 13 * Implements the join point concept, e.g. defines a well defined point in the program flow. 14 * <p/> 15 * Provides access to only static data, is therefore much more performant than the usage of the {@link 16 * org.codehaus.aspectwerkz.joinpoint.JoinPoint} interface. 17 * 18 * @author <a href="mailto:jboner@codehaus.org">Jonas BonŽr </a> 19 */ 20 public interface StaticJoinPoint { 21 public static final String METHOD_EXECUTION = "METHOD_EXECUTION"; 22 public static final String METHOD_CALL = "METHOD_CALL"; 23 public static final String CONSTRUCTOR_EXECUTION = "CONSTRUCTOR_EXECUTION"; 24 public static final String CONSTRUCTOR_CALL = "CONSTRUCTOR_CALL"; 25 public static final String FIELD_SET = "FIELD_SET"; 26 public static final String FIELD_GET = "FIELD_GET"; 27 public static final String HANDLER = "HANDLER"; 28 public static final String STATIC_INITIALIZATION = "STATIC_INITIALIZATION"; 29 30 /*** 31 * Walks through the pointcuts and invokes all its advices. When the last advice of the last pointcut has been 32 * invoked, the original method is invoked. Is called recursively. 33 * 34 * @return the result from the next invocation 35 * @throws Throwable 36 */ 37 Object proceed() throws Throwable; 38 39 /*** 40 * Creates a copy of the join point instance. 41 * 42 * @return a copy of the join point instance 43 */ 44 StaticJoinPoint copy(); 45 46 /*** 47 * Returns metadata matchingn a specfic key. 48 * 49 * @param key the key to the metadata 50 * @return the value 51 */ 52 Object getMetaData(Object key); 53 54 /*** 55 * Adds metadata. 56 * 57 * @param key the key to the metadata 58 * @param value the value 59 */ 60 void addMetaData(Object key, Object value); 61 62 /*** 63 * Returns the signature for the join point. 64 * 65 * @return the signature 66 */ 67 Signature getSignature(); 68 69 /*** 70 * Returns the caller class. 71 * 72 * @return the caller class 73 */ 74 Class getCallerClass(); 75 76 /*** 77 * Returns the callee class. 78 * 79 * @return the target class 80 */ 81 Class getCalleeClass(); 82 83 /*** 84 * Returns the callee class. 85 * 86 * @return the target class 87 * @deprecated use getCalleeClass() instead 88 */ 89 Class getTargetClass(); 90 91 /*** 92 * Returns the join point type. 93 * 94 * @return the type 95 */ 96 JoinPointType getType(); 97 98 /*** 99 * Returns the enclosing static joinpoint. 100 * 101 * @return the enclosing static joinpoint 102 */ 103 EnclosingStaticJoinPoint getEnclosingStaticJoinPoint(); 104 }