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 Details

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