blob: 509e11dab3d5af6cb2ed971437beefce60079ec6 [file] [log] [blame]
package org.eclipse.jdt.internal.core;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
import org.eclipse.core.resources.*;
import org.eclipse.jdt.internal.compiler.env.ISourceMethod;
import org.eclipse.jdt.core.Signature;
/**
* Element info for IMethod elements.
*/
/* package */ class SourceMethodElementInfo extends MemberElementInfo implements ISourceMethod {
/**
* For a source method (i.e. method contained in a comilation 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 (i.e.
* 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;
}
}