groovy / 2.4.21 / org / codehaus / groovy / ast / astnode.html /

[Java] Class ASTNode

  • org.codehaus.groovy.ast.ASTNode

Base class for any AST node. This class supports basic information used in all nodes of the AST:

  • 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.
  • 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
Authors:
James Strachan
Jochen "blackdrag" Theodorou

Methods Summary

Methods
Type Params Return Type Name and description
void copyNodeMetaData(ASTNode other)
Copies all node meta data from the other node to this one
int getColumnNumber()
int getLastColumnNumber()
int getLastLineNumber()
int getLineNumber()
<T> T getNodeMetaData(Object key)
Gets the node meta data.
Map<?, ?> getNodeMetaData()
Returns an unmodifiable view of the current node metadata.
String getText()
Object 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)

Inherited Methods Summary

Inherited Methods
Methods inherited from class Name
class Object wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll

Method Detail

public void copyNodeMetaData(ASTNode other)

Copies all node meta data from the other node to this one

Parameters:
other - - the other node

public int getColumnNumber()

public int getLastColumnNumber()

public int getLastLineNumber()

public int getLineNumber()

<T> public T getNodeMetaData(Object key)

Gets the node meta data.

Parameters:
key - - the meta data key
Returns:
the node meta data value for this key

public Map<?, ?> getNodeMetaData()

Returns an unmodifiable view of the current node metadata.

Returns:
the node metadata. Always not null.

public String getText()

public Object putNodeMetaData(Object key, Object value)

Sets the node meta data but allows overwriting values.

throws:
GroovyBugError if key is null
Parameters:
key - - the meta data key
value - - the meta data value
Returns:
the old node meta data value for this key

public void removeNodeMetaData(Object key)

Removes a node meta data entry.

throws:
GroovyBugError if the key is null
Parameters:
key - - the meta data key

public void setColumnNumber(int columnNumber)

public void setLastColumnNumber(int lastColumnNumber)

public void setLastLineNumber(int lastLineNumber)

public void setLineNumber(int lineNumber)

public void setNodeMetaData(Object key, Object value)

Sets the node meta data.

throws:
GroovyBugError if key is null or there is already meta data under that key
Parameters:
key - - the meta data key
value - - the meta data value

public void setSourcePosition(ASTNode node)

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

public void visit(GroovyCodeVisitor visitor)

© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/2.4.21/html/gapi/org/codehaus/groovy/ast/ASTNode.html