Package org.eclipse.jdt.core.dom
Class MethodRefParameter
- java.lang.Object
-
- org.eclipse.jdt.core.dom.ASTNode
-
- org.eclipse.jdt.core.dom.MethodRefParameter
-
public class MethodRefParameter extends ASTNode
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:
Javadoc
- Restriction:
- This class is not intended to be instantiated by clients.
-
-
Field Summary
Fields Modifier and Type Field 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).-
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, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, 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, MODULE_DECLARATION, MODULE_MODIFIER, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECORD_DECLARATION, RECOVERED, REQUIRES_DIRECTIVE, 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_EXPRESSION, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_BLOCK, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, UNION_TYPE, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description SimpleName
getName()
Returns the parameter name, ornull
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).-
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 Detail
-
TYPE_PROPERTY
public static final ChildPropertyDescriptor TYPE_PROPERTY
The "type" structural property of this node type (child type:Type
).- Since:
- 3.0
-
VARARGS_PROPERTY
public static final SimplePropertyDescriptor VARARGS_PROPERTY
The "varargs" structural property of this node type (type:Boolean
) (added in JLS3 API).- Since:
- 3.1
-
NAME_PROPERTY
public static final ChildPropertyDescriptor NAME_PROPERTY
The "name" structural property of this node type (child type:SimpleName
).- Since:
- 3.0
-
-
Method Detail
-
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
-
getType
public Type getType()
Returns the paramter type.- Returns:
- the parameter type
-
setType
public void setType(Type type)
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
public SimpleName getName()
Returns the parameter name, ornull
if there is none.- Returns:
- the parameter name node, or
null
if there is none
-
setName
public void setName(SimpleName name)
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
-
-