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