org.mozilla.javascript.ast
Class VariableDeclaration

java.lang.Object
  extended by org.mozilla.javascript.Node
      extended by org.mozilla.javascript.ast.AstNode
          extended by org.mozilla.javascript.ast.VariableDeclaration
All Implemented Interfaces:
java.lang.Comparable<AstNode>, java.lang.Iterable<Node>

public class VariableDeclaration
extends AstNode

A list of one or more var, const or let declarations. Node type is Token.VAR, Token.CONST or Token.LET.

If the node is for var or const, the node position is the beginning of the var or const keyword. For let declarations, the node position coincides with the first VariableInitializer child.

A standalone variable declaration in a statement context returns true from its isStatement() method.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.mozilla.javascript.ast.AstNode
AstNode.DebugPrintVisitor, AstNode.PositionComparator
 
Nested classes/interfaces inherited from class org.mozilla.javascript.Node
Node.NodeIterator
 
Field Summary
 
Fields inherited from class org.mozilla.javascript.ast.AstNode
length, parent, position
 
Fields inherited from class org.mozilla.javascript.Node
ATTRIBUTE_FLAG, BOTH, CASEARRAY_PROP, CATCH_SCOPE_PROP, CONTROL_BLOCK_PROP, DECR_FLAG, DESCENDANTS_FLAG, DESTRUCTURING_ARRAY_LENGTH, DESTRUCTURING_NAMES, DESTRUCTURING_PARAMS, DESTRUCTURING_SHORTHAND, DIRECTCALL_PROP, END_DROPS_OFF, END_RETURNS, END_RETURNS_VALUE, END_UNREACHED, END_YIELDS, EXPRESSION_CLOSURE_PROP, first, FUNCTION_PROP, GENERATOR_END_PROP, INCRDECR_PROP, ISNUMBER_PROP, JSDOC_PROP, LABEL_ID_PROP, last, LAST_PROP, LEFT, lineno, LOCAL_BLOCK_PROP, LOCAL_PROP, MEMBER_TYPE_PROP, NAME_PROP, next, NON_SPECIALCALL, OBJECT_IDS_PROP, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, propListHead, REGEXP_PROP, RIGHT, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, type, VARIABLE_PROP
 
Constructor Summary
VariableDeclaration()
           
VariableDeclaration(int pos)
           
VariableDeclaration(int pos, int len)
           
 
Method Summary
 void addVariable(VariableInitializer v)
          Adds a variable initializer node to the child list.
 java.util.List<VariableInitializer> getVariables()
          Returns variable list.
 boolean isConst()
          Returns true if this is a Token.CONST declaration.
 boolean isLet()
          Returns true if this is a Token.LET declaration.
 boolean isStatement()
          Returns true if this node represents a statement.
 boolean isVar()
          Returns true if this is a var (not const or let) declaration.
 void setIsStatement(boolean isStatement)
          Set or unset the statement flag.
 Node setType(int type)
          Sets the node type and returns this node.
 void setVariables(java.util.List<VariableInitializer> variables)
          Sets variable list
 java.lang.String toSource(int depth)
          Emits source code for this node.
 void visit(NodeVisitor v)
          Visits this node, then each VariableInitializer child.
 
Methods inherited from class org.mozilla.javascript.ast.AstNode
addChild, assertNotNull, codeBug, compareTo, debugPrint, depth, getAbsolutePosition, getAstRoot, getEnclosingFunction, getEnclosingScope, getLength, getLineno, getParent, getPosition, hasSideEffects, makeIndent, operatorToString, printList, setBounds, setLength, setParent, setPosition, setRelative, shortName, toSource
 
Methods inherited from class org.mozilla.javascript.Node
addChildAfter, addChildBefore, addChildrenToBack, addChildrenToFront, addChildToBack, addChildToFront, getChildBefore, getDouble, getExistingIntProp, getFirstChild, getIntProp, getJsDoc, getJsDocNode, getLastChild, getLastSibling, getNext, getProp, getScope, getString, getType, hasChildren, hasConsistentReturnUsage, iterator, labelId, labelId, newNumber, newString, newString, newTarget, putIntProp, putProp, removeChild, removeChildren, removeProp, replaceChild, replaceChildAfter, resetTargets, setDouble, setJsDocNode, setLineno, setScope, setString, toString, toStringTree
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

VariableDeclaration

public VariableDeclaration()

VariableDeclaration

public VariableDeclaration(int pos)

VariableDeclaration

public VariableDeclaration(int pos,
                           int len)
Method Detail

getVariables

public java.util.List<VariableInitializer> getVariables()
Returns variable list. Never null.


setVariables

public void setVariables(java.util.List<VariableInitializer> variables)
Sets variable list

Throws:
java.lang.IllegalArgumentException - if variables list is null

addVariable

public void addVariable(VariableInitializer v)
Adds a variable initializer node to the child list. Sets initializer node's parent to this node.

Throws:
java.lang.IllegalArgumentException - if v is null

setType

public Node setType(int type)
Sets the node type and returns this node.

Overrides:
setType in class Node
Throws:
java.lang.IllegalArgumentException - if declType is invalid

isVar

public boolean isVar()
Returns true if this is a var (not const or let) declaration.

Returns:
true if declType is Token.VAR

isConst

public boolean isConst()
Returns true if this is a Token.CONST declaration.


isLet

public boolean isLet()
Returns true if this is a Token.LET declaration.


isStatement

public boolean isStatement()
Returns true if this node represents a statement.


setIsStatement

public void setIsStatement(boolean isStatement)
Set or unset the statement flag.


toSource

public java.lang.String toSource(int depth)
Description copied from class: AstNode
Emits source code for this node. Callee is responsible for calling this function recursively on children, incrementing indent as appropriate.

Note: if the parser was in error-recovery mode, some AST nodes may have null children that are expected to be non-null when no errors are present. In this situation, the behavior of the toSource method is undefined: toSource implementations may assume that the AST node is error-free, since it is intended to be invoked only at runtime after a successful parse.

Specified by:
toSource in class AstNode
Parameters:
depth - the current recursion depth, typically beginning at 0 when called on the root node.

visit

public void visit(NodeVisitor v)
Visits this node, then each VariableInitializer child.

Specified by:
visit in class AstNode
Parameters:
v - the object to call with this node and its children