/* *******************************************************************
* Copyright (c) 1999-2001 Xerox Corporation,
* 2002 Palo Alto Research Center, Incorporated (PARC).
* All rights reserved.
* This program and the accompanying materials are made available
* under the terms of the Eclipse Public License v1.0
* which accompanies this distribution and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Xerox/PARC initial implementation
* ******************************************************************/
package org.aspectj.runtime.reflect;
import org.aspectj.lang.reflect.CodeSignature;
abstract class CodeSignatureImpl extends MemberSignatureImpl implements CodeSignature {
Class[] parameterTypes;
String[] parameterNames;
Class[] exceptionTypes;
CodeSignatureImpl(int modifiers, String name, Class declaringType,
Class[] parameterTypes, String[] parameterNames, Class[] exceptionTypes)
{
super(modifiers, name, declaringType);
this.parameterTypes = parameterTypes;
this.parameterNames = parameterNames;
this.exceptionTypes = exceptionTypes;
}
CodeSignatureImpl(String stringRep) {
super(stringRep);
}
public Class[] getParameterTypes() {
if (parameterTypes == null) parameterTypes = extractTypes(3);
return parameterTypes;
}
public String[] getParameterNames() {
if (parameterNames == null) parameterNames = extractStrings(4);
return parameterNames;
}
public Class[] getExceptionTypes() {
if (exceptionTypes == null) exceptionTypes = extractTypes(5);
return exceptionTypes;
}
}