1 /*************************************************************************************** 2 * Copyright (c) Jonas Bonr, 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.intercept; 9 10 /*** 11 * The advisable interface is introduced to target class made advisable. 12 * </p> 13 * Note: user should ensure that the target class has no user defined method named aw_addAdvice 14 * and aw_removeAdvice. Other methods are made synthetic and thus will not lead to name clashes. 15 * 16 * @author <a href="mailto:jboner@codehaus.org">Jonas Bonér </a> 17 */ 18 public interface Advisable { 19 20 /*** 21 * @param pointcut 22 * @param advice 23 */ 24 void aw_addAdvice(String pointcut, Advice advice); 25 26 /*** 27 * @param pointcut 28 * @param adviceClass 29 */ 30 void aw_removeAdvice(String pointcut, Class adviceClass); 31 32 /*** 33 * @param joinPointIndex 34 * @return 35 */ 36 AroundAdvice[] aw$getAroundAdvice(final int joinPointIndex); 37 38 /*** 39 * @param joinPointIndex 40 * @return 41 */ 42 BeforeAdvice[] aw$getBeforeAdvice(final int joinPointIndex); 43 44 /*** 45 * @param joinPointIndex 46 * @return 47 */ 48 AfterAdvice[] aw$getAfterAdvice(final int joinPointIndex); 49 50 /*** 51 * @param joinPointIndex 52 * @return 53 */ 54 AfterReturningAdvice[] aw$getAfterReturningAdvice(final int joinPointIndex); 55 56 /*** 57 * @param joinPointIndex 58 * @return 59 */ 60 AfterThrowingAdvice[] aw$getAfterThrowingAdvice(final int joinPointIndex); 61 }