/******************************************************************************* * 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.jdom; /** * Represents a method declaration. The corresponding syntactic units are * MethodDeclaration (JLS2 8.4), ConstructorDeclaration (JLS2 8.8), and * AbstractMethodDeclaration (JLS2 9.4). A method has no children and its parent * is a type. Local classes are considered to be part of the body of a method, * not a child. *
* This interface is not intended to be implemented by clients. *
*/ public interface IDOMMethod extends IDOMMember { /** * Adds the given exception to the end of the list of exceptions this method * is declared to throw. The syntax for an exception type name is defined by * Method Throws (JLS2 8.4.4). Type names must be specified as they would * appear in source code. For example:"IOException"
or
* "java.io.IOException"
. This is a convenience method for
* setExceptions
.
*
* @param exceptionType
* the exception type
* @exception IllegalArgumentException
* if null
is specified
* @see #setExceptions
*/
public void addException(String exceptionType)
throws IllegalArgumentException;
/**
* Adds the given parameter to the end of the parameter list. This is a
* convenience method for setParameters
. The syntax for
* parameter names is defined by Formal Parameters (JLS2 8.4.1). The syntax
* for type names is defined by Formal Parameters (JLS2 8.4.1). Type names
* must be specified as they would appear in source code. For example:
* "File"
, "java.io.File"
, or
* "int[]"
.
*
* @param type
* the type name
* @param name
* the parameter name
* @exception IllegalArgumentException
* if null
is specified for either the type or
* the name
* @see #setParameters
*/
public void addParameter(String type, String name)
throws IllegalArgumentException;
/**
* Returns the body of this method. The method body includes all code
* following the method declaration, including the enclosing braces.
*
* @return the body, or null
if the method has no body (for
* example, for an abstract or native method)
*/
public String getBody();
/**
* Returns the names of the exception types this method throws in the order
* in which they are declared in the source, or an empty array if this
* method declares no exception types. The syntax for an exception type name
* is defined by Method Throws (JLS2 8.4.4). Type names appear as they would
* in source code. For example: "IOException"
or
* "java.io.IOException"
.
*
* @return the list of exception types
*/
public String[] getExceptions();
/**
* The IDOMMethod
refinement of this IDOMNode
* method returns the name of this method. Returns null
for
* constructors. The syntax for a method name is defined by Identifier of
* MethodDeclarator (JLS2 8.4).
*/
public String getName();
/**
* Returns the names of parameters in this method in the order they are
* declared, or null
if no parameters are declared. The
* syntax for parameter names is defined by Formal Parameters (JLS2 8.4.1).
*
* @return the list of parameter names, or null
if no
* parameters are declared
*/
public String[] getParameterNames();
/**
* Returns the type names for the parameters of this method in the order
* they are declared, or null
if no parameters are declared.
* The syntax for type names is defined by Formal Parameters (JLS2 8.4.1).
* Type names must be specified as they would appear in source code. For
* example: "File"
, "java.io.File"
, or
* "int[]"
.
*
* @return the list of parameter types, or null
if no
* parameters are declared
*/
public String[] getParameterTypes();
/**
* Returns the return type name, or null
. Returns
* null
for constructors. The syntax for return type name
* corresponds to ReturnType in MethodDeclaration (JLS2 8.4). Names are
* returned as they appear in the source code; for example:
* "File"
, "java.io.File"
,
* "int[]"
, or "void"
.
*
* @return the return type
*/
public String getReturnType();
/**
* Returns whether this method is a constructor.
*
* @return true
for constructors, and false
* for methods
*/
public boolean isConstructor();
/**
* Sets the body of this method. The method body includes all code following
* the method declaration, including the enclosing braces. No formatting or
* syntax checking is performed on the body.
*
* @return the body, or null
indicating the method has no
* body (for example, for an abstract or native method)
*/
public void setBody(String body);
/**
* Sets whether this method represents a constructor.
*
* @param b
* true
for constructors, and false
* for methods
*/
public void setConstructor(boolean b);
/**
* Sets the names of the exception types this method throws, in the order in
* which they are declared in the source. An empty array indicates this
* method declares no exception types. The syntax for an exception type name
* is defined by Method Throws (JLS2 8.4.4). Type names must be specified as
* they would appear in source code. For example: "IOException"
* or "java.io.IOException"
.
*
* @param exceptionTypes
* the list of exception types
*/
public void setExceptions(String[] exceptionTypes);
/**
* The IDOMMethod
refinement of this IDOMNode
* method sets the name of this method. The syntax for a method name is
* defined by Identifer of MethodDeclarator (JLS2 8.4).
*
* The name of a constructor is always null
and thus it must
* not be set.
*
null
is specified
*/
public void setName(String name) throws IllegalArgumentException;
/**
* Sets the types and names of parameters in this method in the order they
* are to be declared. If both types
and names
* are null
this indicates that this method has no
* parameters. The syntax for parameter names is defined by Formal
* Parameters (JLS2 8.4.1). The syntax for type names is defined by Formal
* Parameters (JLS2 8.4.1). Type names must be specified as they would
* appear in source code. For example: "File"
,
* "java.io.File"
, or "int[]"
.
*
* @param types
* the list of type names
* @param names
* the list of parameter name
* @exception IllegalArgumentException
* if the number of types and names do not match, or if
* either argument is null
*/
public void setParameters(String[] types, String[] names)
throws IllegalArgumentException;
/**
* Sets the return type name. This has no effect on constructors. The syntax
* for return type name corresponds to ReturnType in MethodDeclaration (JLS2
* 8.4). Type names are specified as they appear in the source code; for
* example: "File"
, "java.io.File"
,
* "int[]"
, or "void"
.
*
* @param type
* the return type
* @exception IllegalArgumentException
* if null
is specified
*/
public void setReturnType(String type) throws IllegalArgumentException;
}