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:
Restriction:
This class is not intended to be instantiated by clients.
  • Field Details

    • 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 Details

    • 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
    • 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:
      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:
      IllegalArgumentException - if:
      • the node belongs to a different AST
      • the node already has a parent