Class SimpleName

  • All Implemented Interfaces:
    IDocElement

    public class SimpleName
    extends Name
    AST node for a simple name. A simple name is an identifier other than a keyword, boolean literal ("true", "false") or null literal ("null").
     SimpleName:
         Identifier
     
    Since:
    2.0
    Restriction:
    This class is not intended to be instantiated by clients.
    • Field Detail

      • IDENTIFIER_PROPERTY

        public static final SimplePropertyDescriptor IDENTIFIER_PROPERTY
        The "identifier" structural property of this node type (type: String).
        Since:
        3.0
      • VAR_PROPERTY

        public static final SimplePropertyDescriptor VAR_PROPERTY
        The "var" property of this node name (type: Boolean) (added in JLS10 API).
        Since:
        3.14
    • 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
      • getIdentifier

        public String getIdentifier()
        Returns this node's identifier.
        Returns:
        the identifier of this node
      • setIdentifier

        public void setIdentifier​(String identifier)
        Sets the identifier of this node to the given value. The identifier should be legal according to the rules of the Java language. Note that keywords are not legal identifiers.

        Note that the list of keywords may depend on the version of the language (determined when the AST object was created).

        Parameters:
        identifier - the identifier of this node
        Throws:
        IllegalArgumentException - if the identifier is invalid
      • isVar

        public boolean isVar()
        Returns whether this represents a "var" type or not (added in JLS10 API).
        Returns:
        true if this is a var type and false otherwise
        Throws:
        UnsupportedOperationException - if this operation is used in an AST below JLS10
        Since:
        3.14
      • isDeclaration

        public boolean isDeclaration()
        Returns whether this simple name represents a name that is being defined, as opposed to one being referenced. The following positions are considered ones where a name is defined:
        • The type name in a TypeDeclaration node.
        • The method name in a MethodDeclaration node providing isConstructor is false.
        • The variable name in any type of VariableDeclaration node.
        • The enum type name in a EnumDeclaration node.
        • The enum constant name in an EnumConstantDeclaration node.
        • The variable name in an EnhancedForStatement node.
        • The type variable name in a TypeParameter node.
        • The type name in an AnnotationTypeDeclaration node.
        • The member name in an AnnotationTypeMemberDeclaration node.

        Note that this is a convenience method that simply checks whether this node appears in the declaration position relative to its parent. It always returns false if this node is unparented.

        Returns:
        true if this node declares a name, and false otherwise