org.eclipse.jdt.core.dom
Class MethodRefParameter

java.lang.Object
  extended by org.eclipse.jdt.core.dom.ASTNode
      extended by 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). For JLS2:

 MethodRefParameter:
                Type [ Identifier ]
 
For JLS3, the variable arity indicator was added:
 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

Field Summary
static ChildPropertyDescriptor NAME_PROPERTY
          The "name" structural property of this node type.
static ChildPropertyDescriptor TYPE_PROPERTY
          The "type" structural property of this node type.
static SimplePropertyDescriptor VARARGS_PROPERTY
          The "varargs" structural property of this node type (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, 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
 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 java.util.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
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

TYPE_PROPERTY

public static final ChildPropertyDescriptor TYPE_PROPERTY
The "type" structural property of this node type.

Since:
3.0

VARARGS_PROPERTY

public static final SimplePropertyDescriptor VARARGS_PROPERTY
The "varargs" structural property of this node type (added in JLS3 API).

Since:
3.1

NAME_PROPERTY

public static final ChildPropertyDescriptor NAME_PROPERTY
The "name" structural property of this node type.

Since:
3.0
Method Detail

propertyDescriptors

public static java.util.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:
java.lang.IllegalArgumentException - if:
  • the type is null
  • the node belongs to a different AST
  • the node already has a parent

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 Fooin 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.

Returns:
true if this is a variable arity parameter, and false otherwise
Throws:
java.lang.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, and false otherwise
Since:
3.1

getName

public SimpleName getName()
Returns the parameter name, or null 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, or null if there is none
Throws:
java.lang.IllegalArgumentException - if:
  • the node belongs to a different AST
  • the node already has a parent