org.eclipse.wst.jsdt.core.dom
Class VariableDeclaration

java.lang.Object
  extended by org.eclipse.wst.jsdt.core.dom.ASTNode
      extended by org.eclipse.wst.jsdt.core.dom.VariableDeclaration
Direct Known Subclasses:
SingleVariableDeclaration, VariableDeclarationFragment

public abstract class VariableDeclaration
extends ASTNode

Abstract base class of all AST node types that declare a single local variable.

 VariableDeclaration:
    SingleVariableDeclaration
    VariableDeclarationFragment
 

See Also:
SingleVariableDeclaration, 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 inherited from class org.eclipse.wst.jsdt.core.dom.ASTNode
ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_TYPE, ASSERT_STATEMENT, ASSIGNMENT, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, DO_STATEMENT, EMPTY_EXPRESSION, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_IN_STATEMENT, FOR_STATEMENT, FUNCTION_DECLARATION, 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, MODIFIER, NULL_LITERAL, NUMBER_LITERAL, OBJECT_LITERAL, OBJECT_LITERAL_FIELD, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, REGULAR_EXPRESSION_LITERAL, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SWITCH_CASE, SWITCH_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_PARAMETER, UNDEFINED_LITERAL, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, WITH_STATEMENT
 
Method Summary
abstract  int getExtraDimensions()
          Returns the number of extra array dimensions over and above the explicitly-specified type.
 SimplePropertyDescriptor getExtraDimensionsProperty()
          Returns structural property descriptor for the "extraDimensions" property of this node.
abstract  Expression getInitializer()
          Returns the initializer of this variable declaration, or null if there is none.
 ChildPropertyDescriptor getInitializerProperty()
          Returns structural property descriptor for the "initializer" property of this node.
abstract  SimpleName getName()
          Returns the name of the variable declared in this variable declaration.
 ChildPropertyDescriptor getNameProperty()
          Returns structural property descriptor for the "name" property of this node.
 IVariableBinding resolveBinding()
          Resolves and returns the binding for the variable declared in this variable declaration.
abstract  void setExtraDimensions(int dimensions)
          Sets the number of extra array dimensions over and above the explicitly-specified type.
abstract  void setInitializer(Expression initializer)
          Sets or clears the initializer of this variable declaration.
abstract  void setName(SimpleName variableName)
          Sets the name of the variable declared in this variable declaration to the given name.
 
Methods inherited from class org.eclipse.wst.jsdt.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
getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

getExtraDimensionsProperty

public final SimplePropertyDescriptor getExtraDimensionsProperty()
Returns structural property descriptor for the "extraDimensions" property of this node.

Returns:
the property descriptor

getInitializerProperty

public final ChildPropertyDescriptor getInitializerProperty()
Returns structural property descriptor for the "initializer" property of this node.

Returns:
the property descriptor

getNameProperty

public final ChildPropertyDescriptor getNameProperty()
Returns structural property descriptor for the "name" property of this node.

Returns:
the property descriptor

getName

public abstract SimpleName getName()
Returns the name of the variable declared in this variable declaration.

Returns:
the variable name node

setName

public abstract void setName(SimpleName variableName)
Sets the name of the variable declared in this variable declaration to the given name.

Parameters:
variableName - the new variable name
Throws:
java.lang.IllegalArgumentException - if:
  • the node belongs to a different AST
  • the node already has a parent

getExtraDimensions

public abstract int getExtraDimensions()
Returns the number of extra array dimensions over and above the explicitly-specified type.

For example, int x[][] has a type of int and two extra array dimensions; int[][] x has a type of int[][] and zero extra array dimensions. The two constructs have different ASTs, even though there are really syntactic variants of the same variable declaration.

Returns:
the number of extra array dimensions

setExtraDimensions

public abstract void setExtraDimensions(int dimensions)
Sets the number of extra array dimensions over and above the explicitly-specified type.

For example, int x[][] has a type of int and two extra array dimensions; int[][] x has a type of int[][] and zero extra array dimensions. The two constructs have different ASTs, even though there are really syntactic variants of the same variable declaration.

Parameters:
dimensions - the number of array dimensions
Throws:
java.lang.IllegalArgumentException - if the number of dimensions is negative

getInitializer

public abstract Expression getInitializer()
Returns the initializer of this variable declaration, or null if there is none.

Returns:
the initializer expression node, or null if there is none

setInitializer

public abstract void setInitializer(Expression initializer)
Sets or clears the initializer of this variable declaration.

Parameters:
initializer - the initializer expression node, or null if there is none
Throws:
java.lang.IllegalArgumentException - if:
  • the node belongs to a different AST
  • the node already has a parent
  • a cycle in would be created

resolveBinding

public IVariableBinding resolveBinding()
Resolves and returns the binding for the variable declared in this variable declaration.

Note that bindings are generally unavailable unless requested when the AST is being built.

Returns:
the binding, or null if the binding cannot be resolved