public class VariableDeclarationStatement extends Statement
This kind of node collects several variable declaration fragments
(VariableDeclarationFragment
) into a statement
(Statement
), all sharing the same modifiers and base type.
VariableDeclarationStatement: { Modifier } Type VariableDeclarationFragment { , VariableDeclarationFragment } ;For JLS3, the modifier flags were replaced by a list of modifier nodes (intermixed with annotations):
VariableDeclarationStatement: { ExtendedModifier } Type VariableDeclarationFragment { , VariableDeclarationFragment } ;
Note: This type of node is a convenience of sorts.
An equivalent way to represent the same statement is to use
a VariableDeclarationExpression
wrapped in an ExpressionStatement
.
Modifier and Type | Field and Description |
---|---|
static ChildListPropertyDescriptor |
FRAGMENTS_PROPERTY
The "fragments" structural property of this node type).
|
static ChildPropertyDescriptor |
JAVADOC_PROPERTY |
static SimplePropertyDescriptor |
KIND_PROPERTY
the kind structured property as introduced in Ecmascript 2015
|
static SimplePropertyDescriptor |
MODIFIERS_PROPERTY
The "modifiers" structural property of this node type (JLS2 API only).
|
static ChildListPropertyDescriptor |
MODIFIERS2_PROPERTY
The "modifiers" structural property of this node type (added in JLS3 API).
|
static ChildPropertyDescriptor |
TYPE_PROPERTY
The "type" structural property of this node type.
|
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
Modifier and Type | Method and Description |
---|---|
java.util.List |
fragments()
Returns the live list of variable declaration fragments in this statement.
|
JSdoc |
getJavadoc()
Returns the doc comment node.
|
VariableKind |
getKind() |
int |
getModifiers()
Returns the modifiers explicitly specified on this declaration.
|
Type |
getType()
Returns the base type declared in this variable declaration statement.
|
java.util.List |
modifiers()
Returns the live ordered list of modifiers and annotations
of this declaration (added in JLS3 API).
|
static java.util.List |
propertyDescriptors(int apiLevel)
Returns a list of structural property descriptors for this node type.
|
IVariableBinding |
resolveBinding() |
void |
setJavadoc(JSdoc docComment)
Sets or clears the doc comment node.
|
void |
setKind(VariableKind kind) |
void |
setModifiers(int modifiers)
Deprecated.
In the JLS3 API, this method is replaced by
modifiers() which contains a list of a Modifier nodes. |
void |
setType(Type type)
Sets the base type declared in this variable declaration statement to
the given type.
|
getLeadingComment, setLeadingComment
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
public static final SimplePropertyDescriptor MODIFIERS_PROPERTY
public static final ChildPropertyDescriptor JAVADOC_PROPERTY
public static final ChildListPropertyDescriptor MODIFIERS2_PROPERTY
public static final ChildPropertyDescriptor TYPE_PROPERTY
public static final ChildListPropertyDescriptor FRAGMENTS_PROPERTY
public static final SimplePropertyDescriptor KIND_PROPERTY
public static java.util.List propertyDescriptors(int apiLevel)
apiLevel
- the API level; one of the
AST.JLS*
constantsStructuralPropertyDescriptor
)public java.util.List modifiers()
Note that the final modifier is the only meaningful modifier for local variable declarations.
IExtendedModifier
)java.lang.UnsupportedOperationException
- if this operation is used in
a JLS2 ASTpublic int getModifiers()
In the JLS3 API, this method is a convenience method that
computes these flags from modifiers()
.
Modifier
constantsModifier
public void setModifiers(int modifiers)
modifiers()
which contains a list of a Modifier
nodes.Note that the final modifier is the only meaningful modifier for local variable declarations.
modifiers
- the given modifiers (bit-wise or of Modifier
constants)java.lang.UnsupportedOperationException
- if this operation is used in
an AST later than JLS2Modifier
public VariableKind getKind()
public void setKind(VariableKind kind)
public Type getType()
N.B. The individual child variable declaration fragments may specify additional array dimensions. So the type of the variable are not necessarily exactly this type.
public void setType(Type type)
type
- the new base typejava.lang.IllegalArgumentException
- if:
public java.util.List fragments()
VariableDeclarationFragment
s;
attempts to add any other type of node will trigger an
exception.VariableDeclarationFragment
)public IVariableBinding resolveBinding()
public JSdoc getJavadoc()
null
if nonepublic void setJavadoc(JSdoc docComment)
docComment
- the doc comment node, or null
if nonejava.lang.IllegalArgumentException
- if the doc comment string is invalidCopyright (c) IBM Corp. and others 2000, 2010. All Rights Reserved.