/************************************************************************************** * Copyright (c) Jonas Bon�r, Alexandre Vasseur. All rights reserved. * * http://aspectwerkz.codehaus.org * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the BSD-style license * * a copy of which has been included with this distribution in the license.txt file. * **************************************************************************************/ package org.codehaus.aspectwerkz.joinpoint.impl; import java.lang.reflect.Method; import java.io.Serializable; /** * Contains a pair of the original method and the wrapper method if such a method exists. * * @author <a href="mailto:jboner@codehaus.org">Jonas Bon�r </a> */ public class MethodTuple implements Serializable { private final Method m_wrapperMethod; private final Method m_originalMethod; private final Class m_declaringClass; /** * @param wrapperMethod * @param originalMethod */ public MethodTuple(Method wrapperMethod, Method originalMethod) { if (originalMethod == null) { originalMethod = wrapperMethod; } if (wrapperMethod.getDeclaringClass() != originalMethod.getDeclaringClass()) { throw new RuntimeException( wrapperMethod.getName() + " and " + originalMethod.getName() + " does not have the same declaring class" ); } m_declaringClass = wrapperMethod.getDeclaringClass(); m_wrapperMethod = wrapperMethod; m_wrapperMethod.setAccessible(true); m_originalMethod = originalMethod; m_originalMethod.setAccessible(true); } public boolean isWrapped() { return m_originalMethod != null; } public Class getDeclaringClass() { return m_declaringClass; } public Method getWrapperMethod() { return m_wrapperMethod; } public Method getOriginalMethod() { return m_originalMethod; } public String getName() { return m_wrapperMethod.getName(); } }