/******************************************************************************* * Copyright (c) 2000, 2003 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/cpl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package net.sourceforge.phpdt.internal.core; import net.sourceforge.phpdt.core.Signature; import net.sourceforge.phpdt.internal.compiler.env.ISourceMethod; /** * Element info for IMethod elements. */ /* package */class SourceMethodElementInfo extends MemberElementInfo implements ISourceMethod { /** * For a source method (that is, a method contained in a compilation unit) * this is a collection of the names of the parameters for this method, in * the order the parameters are delcared. For a binary method (that is, a * method declared in a binary type), these names are invented as "arg"i * where i starts at 1. This is an empty array if this method has no * parameters. */ protected char[][] argumentNames; /** * Collection of type names for the arguments in this method, in the order * they are declared. This is an empty array for a method with no arguments. * A name is a simple name or a qualified, dot separated name. For example, * Hashtable or java.util.Hashtable. */ protected char[][] argumentTypeNames; /** * Return type name for this method. The return type of constructors is * equivalent to void. */ protected char[] returnType; /** * A collection of type names of the exceptions this method throws, or an * empty collection if this method does not declare to throw any exceptions. * A name is a simple name or a qualified, dot separated name. For example, * Hashtable or java.util.Hashtable. */ protected char[][] exceptionTypes; /** * Constructor flag. */ protected boolean isConstructor = false; public char[][] getArgumentNames() { return this.argumentNames; } public char[][] getArgumentTypeNames() { return this.argumentTypeNames; } public char[][] getExceptionTypeNames() { return this.exceptionTypes; } public char[] getReturnTypeName() { return this.returnType; } public char[] getSelector() { return this.name; } protected String getSignature() { String[] paramSignatures = new String[this.argumentTypeNames.length]; for (int i = 0; i < this.argumentTypeNames.length; ++i) { paramSignatures[i] = Signature.createTypeSignature( this.argumentTypeNames[i], false); } return Signature.createMethodSignature(paramSignatures, Signature .createTypeSignature(this.returnType, false)); } public boolean isConstructor() { return this.isConstructor; } protected void setArgumentNames(char[][] names) { this.argumentNames = names; } protected void setArgumentTypeNames(char[][] types) { this.argumentTypeNames = types; } protected void setConstructor(boolean isConstructor) { this.isConstructor = isConstructor; } protected void setExceptionTypeNames(char[][] types) { this.exceptionTypes = types; } protected void setReturnType(char[] type) { this.returnType = type; } }