public class VariableDeclarationExpression extends Expression
This kind of node collects together several variable declaration fragments
(VariableDeclarationFragment
) into a single expression
(Expression
), all sharing the same modifiers and base type.
This type of node can be used as the initializer of a
ForStatement
, or wrapped in an ExpressionStatement
to form the equivalent of a VariableDeclarationStatement
.
VariableDeclarationExpression: { ExtendedModifier } Type VariableDeclarationFragment { , VariableDeclarationFragment }
Modifier and Type | Field and Description |
---|---|
static ChildListPropertyDescriptor |
FRAGMENTS_PROPERTY
The "fragments" structural property of this node type (element type:
VariableDeclarationFragment ). |
static SimplePropertyDescriptor |
MODIFIERS_PROPERTY
Deprecated.
In the JLS3 API, this property is replaced by
MODIFIERS2_PROPERTY . |
static ChildListPropertyDescriptor |
MODIFIERS2_PROPERTY
The "modifiers" structural property of this node type (element type:
IExtendedModifier ) (added in JLS3 API). |
static ChildPropertyDescriptor |
TYPE_PROPERTY
The "type" structural property of this node type (child type:
Type ). |
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, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, 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, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, REQUIRES_DIRECTIVE, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SUPER_METHOD_REFERENCE, SWITCH_CASE, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, UNION_TYPE, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE
Modifier and Type | Method and Description |
---|---|
List |
fragments()
Returns the live list of variable declaration fragments in this
expression.
|
int |
getModifiers()
Returns the modifiers explicitly specified on this declaration.
|
Type |
getType()
Returns the base type declared in this variable declaration.
|
List |
modifiers()
Returns the live ordered list of modifiers and annotations
of this declaration (added in JLS3 API).
|
static List |
propertyDescriptors(int apiLevel)
Returns a list of structural property descriptors for this node type.
|
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 to the given
type.
|
resolveBoxing, resolveConstantExpressionValue, resolveTypeBinding, resolveUnboxing
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
public static final SimplePropertyDescriptor MODIFIERS_PROPERTY
MODIFIERS2_PROPERTY
.Integer
) (JLS2 API only).public static final ChildListPropertyDescriptor MODIFIERS2_PROPERTY
IExtendedModifier
) (added in JLS3 API).public static final ChildPropertyDescriptor TYPE_PROPERTY
Type
).public static final ChildListPropertyDescriptor FRAGMENTS_PROPERTY
VariableDeclarationFragment
).public static List propertyDescriptors(int apiLevel)
apiLevel
- the API level; one of the
AST.JLS*
constantsStructuralPropertyDescriptor
)public List modifiers()
Note that the final modifier is the only meaningful modifier for local variable declarations.
IExtendedModifier
)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)UnsupportedOperationException
- if this operation is used in
an AST later than JLS2Modifier
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 typeIllegalArgumentException
- if:
public List fragments()
VariableDeclarationFragment
s; attempts to add any other
type of node will trigger an exception.VariableDeclarationFragment
)
Copyright (c) 2000, 2018 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.