Package org.eclipse.jdt.core.dom

# Class SimpleName

java.lang.Object
org.eclipse.jdt.core.dom.ASTNode
org.eclipse.jdt.core.dom.Expression
org.eclipse.jdt.core.dom.Name
org.eclipse.jdt.core.dom.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 Summary

Fields
Modifier and Type
Field
Description
`static final SimplePropertyDescriptor`
`IDENTIFIER_PROPERTY`
The "identifier" structural property of this node type (type: `String`).
`static final SimplePropertyDescriptor`
`VAR_PROPERTY`
The "var" property of this node name (type: `Boolean`) (added in JLS10 API).

### Fields inherited from class org.eclipse.jdt.core.dom.ASTNode

`ANNOTATION_TYPE_DECLARATION, ANNOTATION_TYPE_MEMBER_DECLARATION, ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_TYPE, ASSERT_STATEMENT, ASSIGNMENT, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CASE_DEFAULT_EXPRESSION, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EitherOr_MultiPattern, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, GUARDED_PATTERN, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, JAVADOC_REGION, JAVADOC_TEXT_ELEMENT, LABELED_STATEMENT, LAMBDA_EXPRESSION, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, MODULE_DECLARATION, MODULE_MODIFIER, MODULE_QUALIFIED_NAME, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NULL_PATTERN, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, PATTERN_INSTANCEOF_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECORD_DECLARATION, RECORD_PATTERN, RECOVERED, REQUIRES_DIRECTIVE, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_FRAGMENT, STRING_LITERAL, STRING_TEMPLATE_COMPONENT, STRING_TEMPLATE_EXPRESSION, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SUPER_METHOD_REFERENCE, SWITCH_CASE, SWITCH_EXPRESSION, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TAG_PROPERTY, TEXT_BLOCK, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, TYPE_PATTERN, UNION_TYPE, UNNAMED_CLASS, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT`

## Method Summary

Modifier and Type
Method
Description
`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.
`boolean`
`isVar()`
Returns whether this represents a "var" type or not (added in JLS10 API).
`static List`
`propertyDescriptors(int apiLevel)`
Returns a list of structural property descriptors for this node type.
`void`
`setIdentifier(String identifier)`
Sets the identifier of this node to the given value.

### Methods inherited from class org.eclipse.jdt.core.dom.Name

`getFullyQualifiedName, isQualifiedName, isSimpleName, resolveBinding`

### Methods inherited from class org.eclipse.jdt.core.dom.Expression

`resolveBoxing, resolveConstantExpressionValue, resolveTypeBinding, resolveUnboxing`

### Methods inherited from class org.eclipse.jdt.core.dom.ASTNode

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