org.eclipse.wst.jsdt.core.dom

## Class VariableDeclarationFragment

- java.lang.Object
- - org.eclipse.wst.jsdt.core.dom.ASTNode
  - - org.eclipse.wst.jsdt.core.dom.VariableDeclaration
    - - org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment

    public class VariableDeclarationFragment
    extends VariableDeclaration

Variable declaration fragment AST node type, used in field declarations, local variable declarations, and `ForStatement` initializers. It contrast to `SingleVariableDeclaration`, fragments are missing the modifiers and the type; these are located in the fragment's parent node.

     VariableDeclarationFragment:
        Identifier { [] } [ = Expression ]

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` `EXTRA_DIMENSIONS_PROPERTY` The "extraDimensions" structural property of this node type.
`static ChildPropertyDescriptor` `INITIALIZER_PROPERTY` The "initializer" structural property of this node type.
`static ChildPropertyDescriptor` `NAME_PROPERTY` Deprecated. use #PATTERN_PROPERTY
`static ChildPropertyDescriptor` `PATTERN_PROPERTY` The "name" 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
`int` `getExtraDimensions()` Returns the number of extra array dimensions this variable has over and above the type specified in the enclosing declaration.
`Expression` `getInitializer()` Returns the initializer of this variable declaration, or `null` if there is none.
`SimpleName` `getName()` Returns the name of the variable declared in this variable declaration.
`Name` `getPattern()` Returns the variable pattern for this node.
`static java.util.List` `propertyDescriptors(int apiLevel)` Returns a list of structural property descriptors for this node type.
`void` `setExtraDimensions(int dimensions)` Sets the number of extra array dimensions this variable has over and above the type specified in the enclosing declaration.
`void` `setInitializer(Expression initializer)` Sets or clears the initializer of this variable declaration.
`void` `setName(SimpleName variableName)` Sets the name of the variable declared in this variable declaration to the given name.
`void` `setPattern(Name pattern)` Sets the pattern of the variable declared in this variable declaration to the given pattern.

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

`getExtraDimensionsProperty, getInitializerProperty, getNameProperty, resolveBinding`

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

#### NAME_PROPERTY

    public static final ChildPropertyDescriptor NAME_PROPERTY

Deprecated. use #PATTERN_PROPERTY
The "name" structural property of this node type.

#### PATTERN_PROPERTY

    public static final ChildPropertyDescriptor PATTERN_PROPERTY

The "name" structural property of this node type.

Since:
  2.0

#### EXTRA_DIMENSIONS_PROPERTY

    public static final SimplePropertyDescriptor EXTRA_DIMENSIONS_PROPERTY

The "extraDimensions" structural property of this node type.

#### INITIALIZER_PROPERTY

    public static final ChildPropertyDescriptor INITIALIZER_PROPERTY

The "initializer" 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`)

#### getName

    public SimpleName getName()

Description copied from class: `VariableDeclaration`
Returns the name of the variable declared in this variable declaration.

Specified by:
  `getName` in class `VariableDeclaration`
Returns:
  the variable name node

#### setName

    public void setName(SimpleName variableName)

Description copied from class: `VariableDeclaration`
Sets the name of the variable declared in this variable declaration to the given name.

Specified by:
  `setName` in class `VariableDeclaration`
Parameters:
  `variableName` - the new variable name

#### getExtraDimensions

    public int getExtraDimensions()

Returns the number of extra array dimensions this variable has over and above the type specified in the enclosing declaration.

For example, in the AST for `int[] i, j[], k[][]` the variable declaration fragments for the variables `i`, `j`, and `k`, have 0, 1, and 2 extra array dimensions, respectively.

Specified by:
  `getExtraDimensions` in class `VariableDeclaration`
Returns:
  the number of extra array dimensions this variable has over and above the type specified in the enclosing declaration

#### setExtraDimensions

    public void setExtraDimensions(int dimensions)

Sets the number of extra array dimensions this variable has over and above the type specified in the enclosing declaration.

For example, in the AST for `int[] i, j[], k[][]` the variable declaration fragments for the variables `i`, `j`, and `k`, have 0, 1, and 2 extra array dimensions, respectively.

Specified by:
  `setExtraDimensions` in class `VariableDeclaration`
Parameters:
  `dimensions` - the given dimensions

#### getInitializer

    public Expression getInitializer()

Description copied from class: `VariableDeclaration`
Returns the initializer of this variable declaration, or `null` if there is none.

Specified by:
  `getInitializer` in class `VariableDeclaration`
Returns:
  the initializer expression node, or `null` if there is none

#### setInitializer

    public void setInitializer(Expression initializer)

Description copied from class: `VariableDeclaration`
Sets or clears the initializer of this variable declaration.

Specified by:
  `setInitializer` in class `VariableDeclaration`
Parameters:
  `initializer` - the initializer expression node, or `null` if there is none

#### getPattern

    public Name getPattern()

Returns the variable pattern for this node.

Returns:

#### setPattern

    public void setPattern(Name pattern)

Sets the pattern of the variable declared in this variable declaration to the given pattern.

Parameters:
  `pattern` - the new pattern
Throws:
  `java.lang.IllegalArgumentException` - if:
  - the node belongs to a different AST
  - the node already has a parent