org.aspectj.org.eclipse.jdt.core.dom
Class SingleVariableDeclaration

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.core.dom.ASTNode
      extended by org.aspectj.org.eclipse.jdt.core.dom.VariableDeclaration
          extended by org.aspectj.org.eclipse.jdt.core.dom.SingleVariableDeclaration

public class SingleVariableDeclaration
extends VariableDeclaration

Single variable declaration AST node type. Single variable declaration nodes are used in a limited number of places, including formal parameter lists and catch clauses. They are not used for field declarations and regular variable declaration statements.

 SingleVariableDeclaration:
    { ExtendedModifier } Type {Annotation} [ ... ] Identifier { Dimension } [ = Expression ]
 

Note: There's currently no construct in the Java language that allows an initializer on a SingleVariableDeclaration.

Since:
2.0

Field Summary
static SimplePropertyDescriptor EXTRA_DIMENSIONS_PROPERTY
          Deprecated. In JLS8 and later, use EXTRA_DIMENSIONS2_PROPERTY instead.
static ChildListPropertyDescriptor EXTRA_DIMENSIONS2_PROPERTY
          The "extraDimensions2" structural property of this node type (element type: Dimension) (added in JLS8 API).
static ChildPropertyDescriptor INITIALIZER_PROPERTY
          The "initializer" structural property of this node type (child type: Expression).
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 NAME_PROPERTY
          The "name" structural property of this node type (child type: SimpleName).
static ChildPropertyDescriptor TYPE_PROPERTY
          The "type" structural property of this node type (child type: Type).
static ChildListPropertyDescriptor VARARGS_ANNOTATIONS_PROPERTY
          The "varargsAnnotations" structural property of variable arguments of this node type (element type: Annotation) (added in JLS8 API).
static SimplePropertyDescriptor VARARGS_PROPERTY
          The "varargs" structural property of this node type (type: Boolean) (added in JLS3 API).
 
Fields inherited from class org.aspectj.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, 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, 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, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, 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, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE
 
Method Summary
 int getModifiers()
          Returns the modifiers explicitly specified on this declaration.
 Type getType()
          Returns the type of the variable declared in this variable declaration, exclusive of any extra array dimensions or the varargs dimension.
 boolean isVarargs()
          Returns whether this declaration declares the last parameter of a variable arity method (added in JLS3 API).
 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.
 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 type of the variable declared in this variable declaration to the given type, exclusive of any extra array dimensions.
 void setVarargs(boolean variableArity)
          Sets whether this declaration declares the last parameter of a variable arity method (added in JLS3 API).
 java.util.List varargsAnnotations()
          Returns the ordered list of annotations on the varargs token (added in JLS8 API).
 
Methods inherited from class org.aspectj.org.eclipse.jdt.core.dom.VariableDeclaration
extraDimensions, getExtraDimensions, getExtraDimensions2Property, getExtraDimensionsProperty, getInitializer, getInitializerProperty, getName, getNameProperty, resolveBinding, setExtraDimensions, setInitializer, setName
 
Methods inherited from class org.aspectj.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 Detail

MODIFIERS_PROPERTY

public static final SimplePropertyDescriptor MODIFIERS_PROPERTY
Deprecated. In the JLS3 API, this property is replaced by MODIFIERS2_PROPERTY.
The "modifiers" structural property of this node type (type: Integer) (JLS2 API only).

Since:
3.0

MODIFIERS2_PROPERTY

public static final ChildListPropertyDescriptor MODIFIERS2_PROPERTY
The "modifiers" structural property of this node type (element type: IExtendedModifier) (added in JLS3 API).

Since:
3.1

TYPE_PROPERTY

public static final ChildPropertyDescriptor TYPE_PROPERTY
The "type" structural property of this node type (child type: Type).

Since:
3.0

VARARGS_ANNOTATIONS_PROPERTY

public static final ChildListPropertyDescriptor VARARGS_ANNOTATIONS_PROPERTY
The "varargsAnnotations" structural property of variable arguments of this node type (element type: Annotation) (added in JLS8 API).

Since:
3.10

VARARGS_PROPERTY

public static final SimplePropertyDescriptor VARARGS_PROPERTY
The "varargs" structural property of this node type (type: Boolean) (added in JLS3 API).

Since:
3.1

NAME_PROPERTY

public static final ChildPropertyDescriptor NAME_PROPERTY
The "name" structural property of this node type (child type: SimpleName).

Since:
3.0

EXTRA_DIMENSIONS_PROPERTY

public static final SimplePropertyDescriptor EXTRA_DIMENSIONS_PROPERTY
Deprecated. In JLS8 and later, use EXTRA_DIMENSIONS2_PROPERTY instead.
The "extraDimensions" structural property of this node type (type: Integer) (before JLS8 only).

Since:
3.0

EXTRA_DIMENSIONS2_PROPERTY

public static final ChildListPropertyDescriptor EXTRA_DIMENSIONS2_PROPERTY
The "extraDimensions2" structural property of this node type (element type: Dimension) (added in JLS8 API).

Since:
3.10

INITIALIZER_PROPERTY

public static final ChildPropertyDescriptor INITIALIZER_PROPERTY
The "initializer" structural property of this node type (child type: Expression).

Since:
3.0
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)
Since:
3.0

modifiers

public java.util.List modifiers()
Returns the live ordered list of modifiers and annotations of this declaration (added in JLS3 API).

Note that the final modifier is the only meaningful modifier for local variable and formal parameter declarations.

Returns:
the live list of modifiers and annotations (element type: IExtendedModifier)
Throws:
java.lang.UnsupportedOperationException - if this operation is used in a JLS2 AST
Since:
3.1

getModifiers

public int getModifiers()
Returns the modifiers explicitly specified on this declaration.

In the JLS3 API, this method is a convenience method that computes these flags from modifiers().

Returns:
the bit-wise or of Modifier constants
See Also:
Modifier

setModifiers

public void setModifiers(int modifiers)
Deprecated. In the JLS3 API, this method is replaced by modifiers() which contains a list of a Modifier nodes.

Sets the modifiers explicitly specified on this declaration (JLS2 API only).

The following modifiers are meaningful for fields: public, private, protected, static, final, volatile, and transient. For local variable and formal parameter declarations, the only meaningful modifier is final.

Parameters:
modifiers - the given modifiers (bit-wise or of Modifier constants)
Throws:
java.lang.UnsupportedOperationException - if this operation is used in an AST later than JLS2
See Also:
Modifier

getType

public Type getType()
Returns the type of the variable declared in this variable declaration, exclusive of any extra array dimensions or the varargs dimension.

WARNING: For array-typed varargs, the binding of the returned Type is not useful, since it represents an unused type. It misses the last (innermost) dimension that carries the varargsAnnotations().

Returns:
the type

setType

public void setType(Type type)
Sets the type of the variable declared in this variable declaration to the given type, exclusive of any extra array dimensions.

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

isVarargs

public boolean isVarargs()
Returns whether this declaration declares the last parameter of a variable arity method (added in JLS3 API).

Note that the binding for the type Foo in the vararg method declaration void fun(Foo... args) is always for the type as written; i.e., the type binding for Foo. However, if you navigate from the method declaration to its method binding to the type binding for its last parameter, the type binding for the vararg parameter is always an array type (i.e., Foo[]) reflecting the way vararg methods get compiled.

WARNING: For array-typed varargs, the binding of the variable's type is not useful, since it represents an unused type. It misses the last (innermost) dimension that carries the varargsAnnotations().

Returns:
true if this is a variable arity parameter declaration, and false otherwise
Throws:
java.lang.UnsupportedOperationException - if this operation is used in a JLS2 AST
Since:
3.1

setVarargs

public void setVarargs(boolean variableArity)
Sets whether this declaration declares the last parameter of a variable arity method (added in JLS3 API).

Parameters:
variableArity - true if this is a variable arity parameter declaration, and false otherwise
Since:
3.1

varargsAnnotations

public java.util.List varargsAnnotations()
Returns the ordered list of annotations on the varargs token (added in JLS8 API).

WARNING: For array-typed varargs, the binding of the variable's type is not useful, since it represents an unused type. It misses the last (innermost) dimension that carries the returned varargsAnnotations.

Returns:
the list of annotations on the varargs token (element type: Annotation)
Throws:
java.lang.UnsupportedOperationException - if this operation is used in a JLS2, JLS3 or JLS4 AST
Since:
3.10
See Also:
isVarargs()