Package org.eclipse.jdt.core.dom
Class MethodRefParameter
java.lang.Object
org.eclipse.jdt.core.dom.ASTNode
org.eclipse.jdt.core.dom.MethodRefParameter
AST node for a parameter within a method reference (
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.
- Since:
- 3.0
- See Also:
- Restriction:
- This class is not intended to be instantiated by clients.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final ChildPropertyDescriptor
The "name" structural property of this node type (child type:SimpleName
).static final ChildPropertyDescriptor
The "type" structural property of this node type (child type:Type
).static final SimplePropertyDescriptor
The "varargs" structural property of this node type (type:Boolean
) (added in JLS3 API).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, CASE_DEFAULT_EXPRESSION, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EitherOr_MultiPattern, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, GUARDED_PATTERN, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, JAVADOC_REGION, JAVADOC_TEXT_ELEMENT, LABELED_STATEMENT, LAMBDA_EXPRESSION, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, MODULE_DECLARATION, MODULE_MODIFIER, MODULE_QUALIFIED_NAME, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NULL_PATTERN, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, PATTERN_INSTANCEOF_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECORD_DECLARATION, RECORD_PATTERN, RECOVERED, REQUIRES_DIRECTIVE, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_FRAGMENT, STRING_LITERAL, STRING_TEMPLATE_COMPONENT, STRING_TEMPLATE_EXPRESSION, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SUPER_METHOD_REFERENCE, SWITCH_CASE, SWITCH_EXPRESSION, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TAG_PROPERTY, TEXT_BLOCK, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, TYPE_PATTERN, UNION_TYPE, UNNAMED_CLASS, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT
-
Method Summary
Modifier and TypeMethodDescriptiongetName()
Returns the parameter name, ornull
if there is none.getType()
Returns the paramter type.boolean
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
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).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
-
Field Details
-
TYPE_PROPERTY
The "type" structural property of this node type (child type:Type
).- Since:
- 3.0
-
VARARGS_PROPERTY
The "varargs" structural property of this node type (type:Boolean
) (added in JLS3 API).- Since:
- 3.1
-
NAME_PROPERTY
The "name" structural property of this node type (child type:SimpleName
).- Since:
- 3.0
-
-
Method Details
-
propertyDescriptors
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
-
getType
Returns the paramter type.- Returns:
- the parameter type
-
setType
Sets the paramter type to the given type.- Parameters:
type
- the new type- Throws:
IllegalArgumentException
- if:- the type is
null
- the node belongs to a different AST
- the node already has a parent
- the type is
-
isVarargs
public boolean isVarargs()Returns whether this method reference parameter is for the last parameter of a variable arity method (added in JLS3 API).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 forFoo
. 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.- Returns:
true
if this is a variable arity parameter, andfalse
otherwise- Throws:
UnsupportedOperationException
- if this operation is used in a JLS2 AST- Since:
- 3.1
-
setVarargs
public void setVarargs(boolean variableArity) Sets whether this method reference parameter is for the last parameter of a variable arity method (added in JLS3 API).- Parameters:
variableArity
-true
if this is a variable arity parameter, andfalse
otherwise- Since:
- 3.1
-
getName
Returns the parameter name, ornull
if there is none.- Returns:
- the parameter name node, or
null
if there is none
-
setName
Sets or clears the parameter name.- Parameters:
name
- the parameter name node, ornull
if there is none- Throws:
IllegalArgumentException
- if:- the node belongs to a different AST
- the node already has a parent
-