1674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen/* 2674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * Copyright 2002,2003 The Apache Software Foundation 3674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * 4674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * Licensed under the Apache License, Version 2.0 (the "License"); 5674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * you may not use this file except in compliance with the License. 6674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * You may obtain a copy of the License at 7674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * 8674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * http://www.apache.org/licenses/LICENSE-2.0 9674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * 10674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * Unless required by applicable law or agreed to in writing, software 11674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * distributed under the License is distributed on an "AS IS" BASIS, 12674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * See the License for the specific language governing permissions and 14674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * limitations under the License. 15674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen */ 16674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenpackage org.mockito.cglib.proxy; 17674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 18674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen/** 19674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * General-purpose {@link Enhancer} callback which provides for "around advice". 20674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * @author Juozas Baliuka <a href="mailto:baliuka@mwm.lt">baliuka@mwm.lt</a> 21674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * @version $Id: MethodInterceptor.java,v 1.8 2004/06/24 21:15:20 herbyderby Exp $ 22674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen */ 23674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenpublic interface MethodInterceptor 24674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogenextends Callback 25674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen{ 26674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen /** 27674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * All generated proxied methods call this method instead of the original method. 28674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * The original method may either be invoked by normal reflection using the Method object, 29674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * or by using the MethodProxy (faster). 30674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * @param obj "this", the enhanced object 31674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * @param method intercepted Method 32674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * @param args argument array; primitive types are wrapped 33674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * @param proxy used to invoke super (non-intercepted method); may be called 34674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * as many times as needed 35674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * @throws Throwable any exception may be thrown; if so, super method will not be invoked 36674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * @return any value compatible with the signature of the proxied method. Method returning void will ignore this value. 37674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen * @see MethodProxy 38674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen */ 39674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen public Object intercept(Object obj, java.lang.reflect.Method method, Object[] args, 40674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen MethodProxy proxy) throws Throwable; 41674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen 42674060f01e9090cd21b3c5656cc3204912ad17a6Jon Boekenoogen} 43