Package org.codehaus.groovy.ast
Class ASTNode
java.lang.Object
org.codehaus.groovy.ast.ASTNode
- Direct Known Subclasses:
AnnotatedNode
,AnnotationNode
,GenericsType
,ModuleNode
,Statement
Base class for any AST node. This class supports basic information used in all
nodes of the AST a text representation of this node trough getText(). This was in the
past used for assertion messages. Since the usage of power asserts this
method will not be called for this purpose anymore and might be removed in
future versions of Groovy
- line and column number information. Usually a node represents a certain area in a text file determined by a starting position and an ending position. For nodes that do not represent this, this information will be -1. A node can also be configured in its line/col information using another node through setSourcePosition(otherNode).
- every node can store meta data. A phase operation or transform can use this to transport arbitrary information to another phase operation or transform. The only requirement is that the other phase operation or transform runs after the part storing the information. If the information transport is done it is strongly recommended to remove that meta data.
- Version:
- $Revision$
- Author:
- James Strachan, <a href="maito:blackdrag@gmx.org>Jochen "blackdrag" Theodorou
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
copyNodeMetaData
(ASTNode other) Copies all node meta data from one node to the otherint
int
int
int
getNodeMetaData
(Object key) Gets the node meta data.getText()
putNodeMetaData
(Object key, Object value) Sets the node meta data but allows overwriting values.void
removeNodeMetaData
(Object key) Removes a node meta data entry.void
setColumnNumber
(int columnNumber) void
setLastColumnNumber
(int lastColumnNumber) void
setLastLineNumber
(int lastLineNumber) void
setLineNumber
(int lineNumber) void
setNodeMetaData
(Object key, Object value) Sets the node meta data.void
setSourcePosition
(ASTNode node) Sets the source position using another ASTNode.void
visit
(GroovyCodeVisitor visitor)
-
Constructor Details
-
ASTNode
public ASTNode()
-
-
Method Details
-
visit
-
getText
-
getLineNumber
public int getLineNumber() -
setLineNumber
public void setLineNumber(int lineNumber) -
getColumnNumber
public int getColumnNumber() -
setColumnNumber
public void setColumnNumber(int columnNumber) -
getLastLineNumber
public int getLastLineNumber() -
setLastLineNumber
public void setLastLineNumber(int lastLineNumber) -
getLastColumnNumber
public int getLastColumnNumber() -
setLastColumnNumber
public void setLastColumnNumber(int lastColumnNumber) -
setSourcePosition
Sets the source position using another ASTNode. The sourcePosition consists of a line/column pair for the start and a line/column pair for the end of the expression or statement- Parameters:
node
- - the node used to configure the position information
-
getNodeMetaData
Gets the node meta data.- Parameters:
key
- - the meta data key- Returns:
- the node meta data value for this key
-
copyNodeMetaData
Copies all node meta data from one node to the other- Parameters:
other
- - the other node
-
setNodeMetaData
Sets the node meta data.- Parameters:
key
- - the meta data keyvalue
- - the meta data value- Throws:
GroovyBugError
- if key is null or there is already meta data under that key
-
putNodeMetaData
Sets the node meta data but allows overwriting values.- Parameters:
key
- - the meta data keyvalue
- - the meta data value- Returns:
- the old node meta data value for this key
- Throws:
GroovyBugError
- if key is null
-
removeNodeMetaData
Removes a node meta data entry.- Parameters:
key
- - the meta data key- Throws:
GroovyBugError
- if the key is null
-