|
org.eclipse.jdt.core.dom
Class MethodDeclaration
java.lang.Object
org.eclipse.jdt.core.dom.ASTNode
org.eclipse.jdt.core.dom.BodyDeclaration
org.eclipse.jdt.core.dom.MethodDeclaration
-
public class MethodDeclaration
- extends
BodyDeclaration
Method declaration AST node type. A method declaration
is the union of a method declaration and a constructor declaration.
For JLS2:
MethodDeclaration:
[ Javadoc ] { Modifier } ( Type | void ) Identifier (
[ FormalParameter
{ , FormalParameter } ] ) {[ ] }
[ throws TypeName { , TypeName } ] ( Block | ; )
ConstructorDeclaration:
[ Javadoc ] { Modifier } Identifier (
[ FormalParameter
{ , FormalParameter } ] )
[throws TypeName { , TypeName } ] Block
For JLS3, type parameters and reified modifiers
(and annotations) were added:
MethodDeclaration:
[ Javadoc ] { ExtendedModifier }
[ < TypeParameter { , TypeParameter } > ]
( Type | void ) Identifier (
[ FormalParameter
{ , FormalParameter } ] ) {[ ] }
[ throws TypeName { , TypeName } ] ( Block | ; )
ConstructorDeclaration:
[ Javadoc ] { ExtendedModifier }
[ < TypeParameter { , TypeParameter } > ]
Identifier (
[ FormalParameter
{ , FormalParameter } ] )
[throws TypeName { , TypeName } ] Block
When a Javadoc comment is present, the source
range begins with the first character of the "/**" comment delimiter.
When there is no Javadoc comment, the source range begins with the first
character of the first modifier keyword (if modifiers), or the
first character of the "<" token (method, no modifiers, type parameters),
or the first character of the return type (method, no modifiers, no type
parameters), or the first character of the identifier (constructor,
no modifiers). The source range extends through the last character of the
";" token (if no body), or the last character of the block (if body).
-
Since:
- 2.0
-
Restriction:
- This class is not intended to be instantiated by clients.
Fields inherited from class org.eclipse.jdt.core.dom.
ASTNode
|
ANNOTATION_TYPE_DECLARATION,
ANNOTATION_TYPE_MEMBER_DECLARATION,
ANONYMOUS_CLASS_DECLARATION,
ARRAY_ACCESS,
ARRAY_CREATION,
ARRAY_INITIALIZER,
ARRAY_TYPE,
ASSERT_STATEMENT,
ASSIGNMENT,
BLOCK,
BLOCK_COMMENT,
BOOLEAN_LITERAL,
BREAK_STATEMENT,
CAST_EXPRESSION,
CATCH_CLAUSE,
CHARACTER_LITERAL,
CLASS_INSTANCE_CREATION,
COMPILATION_UNIT,
CONDITIONAL_EXPRESSION,
CONSTRUCTOR_INVOCATION,
CONTINUE_STATEMENT,
DO_STATEMENT,
EMPTY_STATEMENT,
ENHANCED_FOR_STATEMENT,
ENUM_CONSTANT_DECLARATION,
ENUM_DECLARATION,
EXPRESSION_STATEMENT,
FIELD_ACCESS,
FIELD_DECLARATION,
FOR_STATEMENT,
IF_STATEMENT,
IMPORT_DECLARATION,
INFIX_EXPRESSION,
INITIALIZER,
INSTANCEOF_EXPRESSION,
JAVADOC,
LABELED_STATEMENT,
LINE_COMMENT,
MALFORMED,
MARKER_ANNOTATION,
MEMBER_REF,
MEMBER_VALUE_PAIR,
METHOD_DECLARATION,
METHOD_INVOCATION,
METHOD_REF,
METHOD_REF_PARAMETER,
MODIFIER,
NORMAL_ANNOTATION,
NULL_LITERAL,
NUMBER_LITERAL,
ORIGINAL,
PACKAGE_DECLARATION,
PARAMETERIZED_TYPE,
PARENTHESIZED_EXPRESSION,
POSTFIX_EXPRESSION,
PREFIX_EXPRESSION,
PRIMITIVE_TYPE,
PROTECT,
QUALIFIED_NAME,
QUALIFIED_TYPE,
RECOVERED,
RETURN_STATEMENT,
SIMPLE_NAME,
SIMPLE_TYPE,
SINGLE_MEMBER_ANNOTATION,
SINGLE_VARIABLE_DECLARATION,
STRING_LITERAL,
SUPER_CONSTRUCTOR_INVOCATION,
SUPER_FIELD_ACCESS,
SUPER_METHOD_INVOCATION,
SWITCH_CASE,
SWITCH_STATEMENT,
SYNCHRONIZED_STATEMENT,
TAG_ELEMENT,
TEXT_ELEMENT,
THIS_EXPRESSION,
THROW_STATEMENT,
TRY_STATEMENT,
TYPE_DECLARATION,
TYPE_DECLARATION_STATEMENT,
TYPE_LITERAL,
TYPE_PARAMETER,
VARIABLE_DECLARATION_EXPRESSION,
VARIABLE_DECLARATION_FRAGMENT,
VARIABLE_DECLARATION_STATEMENT,
WHILE_STATEMENT,
WILDCARD_TYPE
|
Method Summary
|
Block
|
getBody
()
Returns the body of this method declaration, or null if
this method has no body. |
int
|
getExtraDimensions
()
Returns the number of extra array dimensions over and above the
explicitly-specified return type. |
SimpleName
|
getName
()
Returns the name of the method declared in this method declaration. |
Type
|
getReturnType
()
Deprecated. In the JLS3 API, this method is replaced by
getReturnType2() ,
which may return null .
|
Type
|
getReturnType2
()
Returns the return type of the method declared in this method
declaration, exclusive of any extra array dimensions (added in JLS3 API). |
boolean
|
isConstructor
()
Returns whether this declaration declares a constructor or a method. |
boolean
|
isVarargs
()
Returns whether this method declaration declares a
variable arity method (added in JLS3 API). |
List
|
parameters
()
Returns the live ordered list of method parameter declarations for this
method declaration. |
static
List
|
propertyDescriptors
(int apiLevel)
Returns a list of structural property descriptors for this node type. |
IMethodBinding
|
resolveBinding
()
Resolves and returns the binding for the method or constructor declared
in this method or constructor declaration. |
void
|
setBody
(
Block body)
Sets or clears the body of this method declaration. |
void
|
setConstructor
(boolean isConstructor)
Sets whether this declaration declares a constructor or a method. |
void
|
setExtraDimensions
(int dimensions)
Sets the number of extra array dimensions over and above the
explicitly-specified return type. |
void
|
setName
(
SimpleName methodName)
Sets the name of the method declared in this method declaration to the
given name. |
void
|
setReturnType
(
Type type)
Deprecated. In the JLS3 API, this method is replaced by
setReturnType2(Type) , which accepts null .
|
void
|
setReturnType2
(
Type type)
Sets the return type of the method declared in this method declaration
to the given type, exclusive of any extra array dimensions (added in JLS3 API). |
List
|
thrownExceptions
()
Returns the live ordered list of thrown exception names in this method
declaration. |
List
|
typeParameters
()
Returns the live ordered list of type parameters of this method
declaration (added in JLS3 API). |
Methods inherited from class org.eclipse.jdt.core.dom.
ASTNode
|
accept,
copySubtree,
copySubtrees,
delete,
equals,
getAST,
getFlags,
getLength,
getLocationInParent,
getNodeType,
getParent,
getProperty,
getRoot,
getStartPosition,
getStructuralProperty,
hashCode,
nodeClassForType,
properties,
setFlags,
setProperty,
setSourceRange,
setStructuralProperty,
structuralPropertiesForType,
subtreeBytes,
subtreeMatch,
toString
|
JAVADOC_PROPERTY
public static final
ChildPropertyDescriptor JAVADOC_PROPERTY
- The "javadoc" structural property of this node type.
-
Since:
- 3.0
MODIFIERS_PROPERTY
public static final
SimplePropertyDescriptor MODIFIERS_PROPERTY
- The "modifiers" structural property of this node type (JLS2 API only).
-
Since:
- 3.0
MODIFIERS2_PROPERTY
public static final
ChildListPropertyDescriptor MODIFIERS2_PROPERTY
- The "modifiers" structural property of this node type (added in JLS3 API).
-
Since:
- 3.1
CONSTRUCTOR_PROPERTY
public static final
SimplePropertyDescriptor CONSTRUCTOR_PROPERTY
- The "constructor" structural property of this node type.
-
Since:
- 3.0
NAME_PROPERTY
public static final
ChildPropertyDescriptor NAME_PROPERTY
- The "name" structural property of this node type.
-
Since:
- 3.0
RETURN_TYPE_PROPERTY
public static final
ChildPropertyDescriptor RETURN_TYPE_PROPERTY
- The "returnType" structural property of this node type (JLS2 API only).
-
Since:
- 3.0
RETURN_TYPE2_PROPERTY
public static final
ChildPropertyDescriptor RETURN_TYPE2_PROPERTY
- The "returnType2" structural property of this node type (added in JLS3 API).
-
Since:
- 3.1
EXTRA_DIMENSIONS_PROPERTY
public static final
SimplePropertyDescriptor EXTRA_DIMENSIONS_PROPERTY
- The "extraDimensions" structural property of this node type.
-
Since:
- 3.0
TYPE_PARAMETERS_PROPERTY
public static final
ChildListPropertyDescriptor TYPE_PARAMETERS_PROPERTY
- The "typeParameters" structural property of this node type (added in JLS3 API).
-
Since:
- 3.1
PARAMETERS_PROPERTY
public static final
ChildListPropertyDescriptor PARAMETERS_PROPERTY
- The "parameters" structural property of this node type).
-
Since:
- 3.0
THROWN_EXCEPTIONS_PROPERTY
public static final
ChildListPropertyDescriptor THROWN_EXCEPTIONS_PROPERTY
- The "thrownExceptions" structural property of this node type).
-
Since:
- 3.0
BODY_PROPERTY
public static final
ChildPropertyDescriptor BODY_PROPERTY
- The "body" structural property of this node type.
-
Since:
- 3.0
propertyDescriptors
public static
List propertyDescriptors(int apiLevel)
- Returns a list of structural property descriptors for this node type.
Clients must not modify the result.
-
-
Parameters:
-
apiLevel - the API level; one of the AST.JLS* constants
-
Returns:
- a list of property descriptors (element type:
StructuralPropertyDescriptor ) -
Since:
- 3.0
isConstructor
public boolean isConstructor()
- Returns whether this declaration declares a constructor or a method.
-
-
Returns:
-
true if this is a constructor declaration,
and false if this is a method declaration
setConstructor
public void setConstructor(boolean isConstructor)
- Sets whether this declaration declares a constructor or a method.
-
-
Parameters:
-
isConstructor - true for a constructor declaration,
and false for a method declaration
typeParameters
public
List typeParameters()
- Returns the live ordered list of type parameters of this method
declaration (added in JLS3 API). This list is non-empty for parameterized methods.
-
-
Returns:
- the live list of type parameters
(element type:
TypeParameter )
-
Throws:
-
UnsupportedOperationException
- if this operation is used in
a JLS2 AST -
Since:
- 3.1
getName
public
SimpleName getName()
- Returns the name of the method declared in this method declaration.
For a constructor declaration, this should be the same as the name
of the class.
-
-
Returns:
- the method name node
setName
public void setName(
SimpleName methodName)
- Sets the name of the method declared in this method declaration to the
given name. For a constructor declaration, this should be the same as
the name of the class.
-
-
Parameters:
-
methodName - the new method name
-
Throws:
-
IllegalArgumentException
- if:
- the node belongs to a different AST
- the node already has a parent
parameters
public
List parameters()
- Returns the live ordered list of method parameter declarations for this
method declaration.
-
-
Returns:
- the live list of method parameter declarations
(element type:
SingleVariableDeclaration )
isVarargs
public boolean isVarargs()
- Returns whether this method declaration declares a
variable arity method (added in JLS3 API). The convenience method checks
whether the last parameter is so marked.
-
-
Returns:
-
true if this is a variable arity method declaration,
and false otherwise
-
Throws:
-
UnsupportedOperationException
- if this operation is used in
a JLS2 AST -
Since:
- 3.1
-
See Also:
-
SingleVariableDeclaration.isVarargs()
thrownExceptions
public
List thrownExceptions()
- Returns the live ordered list of thrown exception names in this method
declaration.
-
-
Returns:
- the live list of exception names
(element type:
Name )
getReturnType
public
Type getReturnType()
-
Deprecated. In the JLS3 API, this method is replaced by
getReturnType2() ,
which may return null .
- Returns the return type of the method declared in this method
declaration, exclusive of any extra array dimensions (JLS2 API only).
This is one of the few places where the void type is meaningful.
Note that this child is not relevant for constructor declarations
(although, it does still figure in subtree equality comparisons
and visits), and is devoid of the binding information ordinarily
available.
-
-
Returns:
- the return type, possibly the void primitive type
-
Throws:
-
UnsupportedOperationException
- if this operation is used in
an AST later than JLS2
setReturnType
public void setReturnType(
Type type)
-
Deprecated. In the JLS3 API, this method is replaced by
setReturnType2(Type) , which accepts null .
- Sets the return type of the method declared in this method declaration
to the given type, exclusive of any extra array dimensions (JLS2 API only). This is one
of the few places where the void type is meaningful.
Note that this child is not relevant for constructor declarations
(although it does still figure in subtree equality comparisons and visits).
-
-
Parameters:
-
type - the new return type, possibly the void primitive type
-
Throws:
-
IllegalArgumentException
- if:
- the node belongs to a different AST
- the node already has a parent
-
UnsupportedOperationException
- if this operation is used in
an AST later than JLS2
getReturnType2
public
Type getReturnType2()
- Returns the return type of the method declared in this method
declaration, exclusive of any extra array dimensions (added in JLS3 API).
This is one of the few places where the void type is meaningful.
Note that this child is not relevant for constructor declarations
(although, if present, it does still figure in subtree equality comparisons
and visits), and is devoid of the binding information ordinarily
available. In the JLS2 API, the return type is mandatory.
In the JLS3 API, the return type is optional.
-
-
Returns:
- the return type, possibly the void primitive type,
or
null if none
-
Throws:
-
UnsupportedOperationException
- if this operation is used in
a JLS2 AST -
Since:
- 3.1
setReturnType2
public void setReturnType2(
Type type)
- Sets the return type of the method declared in this method declaration
to the given type, exclusive of any extra array dimensions (added in JLS3 API).
This is one of the few places where the void type is meaningful.
Note that this child is not relevant for constructor declarations
(although it does still figure in subtree equality comparisons and visits).
In the JLS2 API, the return type is mandatory.
In the JLS3 API, the return type is optional.
-
-
Parameters:
-
type - the new return type, possibly the void primitive type,
or null if none
-
Throws:
-
UnsupportedOperationException
- if this operation is used in
a JLS2 AST
-
IllegalArgumentException
- if:
- the node belongs to a different AST
- the node already has a parent
-
Since:
- 3.1
getExtraDimensions
public int getExtraDimensions()
- Returns the number of extra array dimensions over and above the
explicitly-specified return type.
For example, int foo()[][] has a return type of
int and two extra array dimensions;
int[][] foo() has a return type of int[][]
and zero extra array dimensions. The two constructs have different
ASTs, even though there are really syntactic variants of the same
method declaration.
-
-
Returns:
- the number of extra array dimensions
-
Since:
- 2.1
setExtraDimensions
public void setExtraDimensions(int dimensions)
- Sets the number of extra array dimensions over and above the
explicitly-specified return type.
For example, int foo()[][] is rendered as a return
type of int with two extra array dimensions;
int[][] foo() is rendered as a return type of
int[][] with zero extra array dimensions. The two
constructs have different ASTs, even though there are really syntactic
variants of the same method declaration.
-
-
Parameters:
-
dimensions - the number of array dimensions
-
Throws:
-
IllegalArgumentException
- if the number of dimensions is
negative -
Since:
- 2.1
getBody
public
Block getBody()
- Returns the body of this method declaration, or
null if
this method has no body.
Note that there is a subtle difference between having no body and having
an empty body ("{}").
-
-
Returns:
- the method body, or
null if this method has no
body
setBody
public void setBody(
Block body)
- Sets or clears the body of this method declaration.
Note that there is a subtle difference between having no body
(as in "void foo();" ) and having an empty body (as in
"void foo() {}"). Abstract methods, and methods declared in interfaces,
have no body. Non-abstract methods, and all constructors, have a body.
-
-
Parameters:
-
body - the block node, or null if
there is none
-
Throws:
-
IllegalArgumentException
- if:
- the node belongs to a different AST
- the node already has a parent
- a cycle in would be created
resolveBinding
public
IMethodBinding resolveBinding()
- Resolves and returns the binding for the method or constructor declared
in this method or constructor declaration.
Note that bindings are generally unavailable unless requested when the
AST is being built.
-
-
Returns:
- the binding, or
null if the binding cannot be
resolved
Copyright (c) IBM Corp. and others 2000, 2008. All Rights Reserved.
|
|