org.eclipse.wst.jsdt.core.dom

## Class SimpleName

- java.lang.Object
- - org.eclipse.wst.jsdt.core.dom.ASTNode
  - - org.eclipse.wst.jsdt.core.dom.Expression
    - - org.eclipse.wst.jsdt.core.dom.Name
      - - org.eclipse.wst.jsdt.core.dom.SimpleName

    public class SimpleName
    extends Name

AST node for a simple name. A simple name is an identifier other than a keyword, future reserved word, null literal and boolean literal.

     SimpleName:
         Identifier

Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

### Field Summary

Fields
`static SimplePropertyDescriptor` `IDENTIFIER_PROPERTY` The "identifier" structural property of this node type.

### Fields inherited from class org.eclipse.wst.jsdt.core.dom.ASTNode

`ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_NAME, ARRAY_TYPE, ARROW_FUNCTION_EXPRESSION, ASSIGNMENT, ASSIGNMENT_NAME, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, DEBUGGER_STATEMENT, DO_STATEMENT, EMPTY_EXPRESSION, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, EXPORT_DECLARATION, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_IN_STATEMENT, FOR_OF_STATEMENT, FOR_STATEMENT, FUNCTION_DECLARATION, FUNCTION_DECLARATION_STATEMENT, FUNCTION_EXPRESSION, FUNCTION_INVOCATION, FUNCTION_REF, FUNCTION_REF_PARAMETER, IF_STATEMENT, IMPORT_DECLARATION, INFERRED_TYPE, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, JAVASCRIPT_UNIT, JSDOC, LABELED_STATEMENT, LINE_COMMENT, LIST_EXPRESSION, MALFORMED, MEMBER_REF, META_PROPERTY, MODIFIER, MODULE_SPECIFIER, NULL_LITERAL, NUMBER_LITERAL, OBJECT_LITERAL, OBJECT_LITERAL_FIELD, OBJECT_NAME, ORIGINAL, PACKAGE_DECLARATION, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, REGULAR_EXPRESSION_LITERAL, REST_ELEMENT_NAME, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_VARIABLE_DECLARATION, SPREAD_ELEMENT, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SWITCH_CASE, SWITCH_STATEMENT, TAG_ELEMENT, TEMPLATE_ELEMENT, TEMPLATE_LITERAL, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_EXPRESSION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, UNDEFINED_LITERAL, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WITH_STATEMENT, YIELD_EXPRESSION`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`java.lang.String` `getIdentifier()` Returns this node's identifier.
`boolean` `isDeclaration()` Returns whether this simple name represents a name that is being defined, as opposed to one being referenced.
`static java.util.List` `propertyDescriptors(int apiLevel)` Returns a list of structural property descriptors for this node type.
`void` `setIdentifier(java.lang.String identifier)` Sets the identifier of this node to the given value.

### Methods inherited from class org.eclipse.wst.jsdt.core.dom.Name

`getFullyQualifiedName, isQualifiedName, isSimpleName, resolveBinding`

### Methods inherited from class org.eclipse.wst.jsdt.core.dom.Expression

`resolveBoxing, resolveConstantExpressionValue, resolveTypeBinding, resolveUnboxing`

### Methods inherited from class org.eclipse.wst.jsdt.core.dom.ASTNode

`accept, copySubtree, copySubtrees, delete, equals, getAST, getBodyChild, 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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### IDENTIFIER_PROPERTY

    public static final SimplePropertyDescriptor IDENTIFIER_PROPERTY

The "identifier" structural property of this node type.

### 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`)

#### getIdentifier

    public java.lang.String getIdentifier()

Returns this node's identifier.

Returns:
  the identifier of this node

#### setIdentifier

    public void setIdentifier(java.lang.String identifier)

Sets the identifier of this node to the given value. The identifier should be legal according to the rules of the JavaScript 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:
  `java.lang.IllegalArgumentException` - if the identifier is invalid

#### 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 `FunctionDeclaration` 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