1 /* 2 * Javassist, a Java-bytecode translator toolkit. 3 * Copyright (C) 1999- Shigeru Chiba. All Rights Reserved. 4 * 5 * The contents of this file are subject to the Mozilla Public License Version 6 * 1.1 (the "License"); you may not use this file except in compliance with 7 * the License. Alternatively, the contents of this file may be used under 8 * the terms of the GNU Lesser General Public License Version 2.1 or later, 9 * or the Apache License Version 2.0. 10 * 11 * Software distributed under the License is distributed on an "AS IS" basis, 12 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 13 * for the specific language governing rights and limitations under the 14 * License. 15 */ 16 17 package javassist.util.proxy; 18 19 import java.lang.reflect.Method; 20 21 /** 22 * The interface implemented by the invocation handler of a proxy 23 * instance. 24 * 25 * @see Proxy#setHandler(MethodHandler) 26 */ 27 public interface MethodHandler { 28 /** 29 * Is called when a method is invoked on a proxy instance associated 30 * with this handler. This method must process that method invocation. 31 * 32 * @param self the proxy instance. 33 * @param thisMethod the overridden method declared in the super 34 * class or interface. 35 * @param proceed the forwarder method for invoking the overridden 36 * method. It is null if the overridden method is 37 * abstract or declared in the interface. 38 * @param args an array of objects containing the values of 39 * the arguments passed in the method invocation 40 * on the proxy instance. If a parameter type is 41 * a primitive type, the type of the array element 42 * is a wrapper class. 43 * @return the resulting value of the method invocation. 44 * 45 * @throws Throwable if the method invocation fails. 46 */ invoke(Object self, Method thisMethod, Method proceed, Object[] args)47 Object invoke(Object self, Method thisMethod, Method proceed, 48 Object[] args) throws Throwable; 49 } 50