public class MethodRefParameter extends ASTNode
MethodRef
).
These nodes only occur within doc comments (Javadoc
).
MethodRefParameter: Type [ ... ] [ Identifier ]
Note: The 1.5 spec for the Javadoc tool does not mention the possibility of a variable arity indicator in method references. However, the 1.5 Javadoc tool itself does indeed support it. Since it makes sense to have a way to explicitly refer to variable arity methods, it seems more likely that the Javadoc spec is wrong in this case.
Javadoc
Modifier and Type | Field and Description |
---|---|
static ChildPropertyDescriptor |
NAME_PROPERTY
The "name" structural property of this node type (child type:
SimpleName ). |
static ChildPropertyDescriptor |
TYPE_PROPERTY
The "type" structural property of this node type (child type:
Type ). |
static SimplePropertyDescriptor |
VARARGS_PROPERTY
The "varargs" structural property of this node type (type:
Boolean ) (added in JLS3 API). |
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, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, LABELED_STATEMENT, LAMBDA_EXPRESSION, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, NAME_QUALIFIED_TYPE, 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, SUPER_METHOD_REFERENCE, SWITCH_CASE, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, UNION_TYPE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE
Modifier and Type | Method and Description |
---|---|
SimpleName |
getName()
Returns the parameter name, or
null if there is none. |
Type |
getType()
Returns the paramter type.
|
boolean |
isVarargs()
Returns whether this method reference parameter is for
the last parameter of a variable arity method (added in JLS3 API).
|
static List |
propertyDescriptors(int apiLevel)
Returns a list of structural property descriptors for this node type.
|
void |
setName(SimpleName name)
Sets or clears the parameter name.
|
void |
setType(Type type)
Sets the paramter type to the given type.
|
void |
setVarargs(boolean variableArity)
Sets whether this method reference parameter is for the last parameter of
a variable arity method (added in JLS3 API).
|
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
public static final ChildPropertyDescriptor TYPE_PROPERTY
Type
).public static final SimplePropertyDescriptor VARARGS_PROPERTY
Boolean
) (added in JLS3 API).public static final ChildPropertyDescriptor NAME_PROPERTY
SimpleName
).public static List propertyDescriptors(int apiLevel)
apiLevel
- the API level; one of the AST.JLS* constantsStructuralPropertyDescriptor
)public Type getType()
public void setType(Type type)
type
- the new typeIllegalArgumentException
- if:
null
public boolean isVarargs()
Note that the binding for the type Foo
in the vararg method
reference #fun(Foo...)
is always for the type as
written; i.e., the type binding for Foo
. However, if you
navigate from the MethodRef to its method binding to the
type binding for its last parameter, the type binding for the vararg
parameter is always an array type (i.e., Foo[]
) reflecting
the way vararg methods get compiled.
true
if this is a variable arity parameter,
and false
otherwiseUnsupportedOperationException
- if this operation is used in
a JLS2 ASTpublic void setVarargs(boolean variableArity)
variableArity
- true
if this is a variable arity
parameter, and false
otherwisepublic SimpleName getName()
null
if there is none.null
if there is nonepublic void setName(SimpleName name)
name
- the parameter name node, or null
if
there is noneIllegalArgumentException
- if:
Copyright (c) 2000, 2015 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.