/******************************************************************************* * 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.core; /** * Represents a method (or constructor) declared in a type. *
* This interface is not intended to be implemented by clients. *
*/ public interface IMethod extends IMember { /** * Returns the simple name of this method. For a constructor, this returns * the simple name of the declaring type. Note: This holds whether the * constructor appears in a source or binary type (even though class files * internally define constructor names to be"<init>"
).
* For the class initialization methods in binary types, this returns the
* special name "<clinit>"
. This is a handle-only
* method.
*/
String getElementName();
/**
* Returns the type signatures of the exceptions this method throws, in the
* order declared in the source. Returns an empty array if this method
* throws no exceptions.
*
*
* For example, a source method declaring "throws IOException"
,
* would return the array {"QIOException;"}
.
*
* @exception JavaModelException
* if this element does not exist or if an exception occurs
* while accessing its corresponding resource.
* @return the type signatures of the exceptions this method throws, in the
* order declared in the source, an empty array if this method
* throws no exceptions
* @see Signature
*/
String[] getExceptionTypes() throws JavaModelException;
/**
* Returns the number of parameters of this method. This is a handle-only
* method.
*
* @return the number of parameters of this method
*/
int getNumberOfParameters();
/**
* Returns the names of parameters in this method. For binary types, these
* names are invented as "arg"+i, where i starts at 1 (even if source is
* associated with the binary). Returns an empty array if this method has no
* parameters.
*
*
* For example, a method declared as
* public void foo(String text, int length)
would return the
* array {"text","length"}
.
*
* @exception JavaModelException
* if this element does not exist or if an exception occurs
* while accessing its corresponding resource.
* @return the names of parameters in this method, an empty array if this
* method has no parameters
*/
String[] getParameterNames() throws JavaModelException;
/**
* Returns the type signatures for the parameters of this method. Returns an
* empty array if this method has no parameters. This is a handle-only
* method.
*
*
* For example, a source method declared as
* public void foo(String text, int length)
would return the
* array {"QString;","I"}
.
*
* @return the type signatures for the parameters of this method, an empty
* array if this method has no parameters
* @see Signature
*/
String[] getParameterTypes();
/**
* Returns the type signature of the return value of this method. For
* constructors, this returns the signature for void.
*
*
* For example, a source method declared as
* public String getName()
would return
* "QString;"
.
*
* @exception JavaModelException
* if this element does not exist or if an exception occurs
* while accessing its corresponding resource.
* @return the type signature of the return value of this method, void for
* constructors
* @see Signature
*/
String getReturnType() throws JavaModelException;
/**
* Returns the signature of the method. This includes the signatures for the
* parameter types and return type, but does not include the method name or
* exception types.
*
*
* For example, a source method declared as
* public void foo(String text, int length)
would return
* "(QString;I)V"
.
*
* @exception JavaModelException
* if this element does not exist or if an exception occurs
* while accessing its corresponding resource.
*
* @see Signature
*/
String getSignature() throws JavaModelException;
/**
* Returns whether this method is a constructor.
*
* @exception JavaModelException
* if this element does not exist or if an exception occurs
* while accessing its corresponding resource.
*
* @return true if this method is a constructor, false otherwise
*/
boolean isConstructor() throws JavaModelException;
/**
* Returns whether this method is a main method. It is a main method if:
*
"main"
void
static
and public