Package org.codehaus.groovy.ast.expr
Class TupleExpression
java.lang.Object
org.codehaus.groovy.ast.ASTNode
org.codehaus.groovy.ast.AnnotatedNode
org.codehaus.groovy.ast.expr.Expression
org.codehaus.groovy.ast.expr.TupleExpression
- All Implemented Interfaces:
GroovydocHolder<AnnotatedNode>,Iterable<Expression>,NodeMetaDataHandler
- Direct Known Subclasses:
ArgumentListExpression
Represents a tuple or grouped list of expressions, typically used for method arguments,
multiple assignment targets, or other contexts requiring multiple values.
A tuple expression is a simple container for an ordered list of
Expression objects
and implements Iterable for convenient traversal.-
Field Summary
Fields inherited from class org.codehaus.groovy.ast.expr.Expression
EMPTY_ARRAYFields inherited from interface groovy.lang.groovydoc.GroovydocHolder
DOC_COMMENT -
Constructor Summary
ConstructorsConstructorDescriptionCreates an empty tuple expression with zero initial capacity.TupleExpression(int capacity) Creates a tuple expression with pre-allocated capacity.TupleExpression(List<Expression> expressions) Creates a tuple expression from an existing list of expressions.TupleExpression(Expression expr) Creates a tuple expression containing a single expression.TupleExpression(Expression[] expressionArray) Creates a tuple expression from an array of expressions.TupleExpression(Expression expr1, Expression expr2) Creates a tuple expression containing two expressions.TupleExpression(Expression expr1, Expression expr2, Expression expr3) Creates a tuple expression containing three expressions. -
Method Summary
Modifier and TypeMethodDescriptionaddExpression(Expression expression) Adds an expression to this tuple.getExpression(int i) Returns the expression at the specified index.Returns the list of all expressions in this tuple.getText()Returns a human-readable text representation of this AST node.iterator()Returns an unmodifiable iterator over the expressions in this tuple.toString()transformExpression(ExpressionTransformer transformer) Transforms this expression and any nested expressions according to the provided transformer.voidvisit(GroovyCodeVisitor visitor) Accepts a code visitor for AST traversal and transformation.Methods inherited from class org.codehaus.groovy.ast.expr.Expression
getType, setType, transformExpressions, transformExpressionsMethods inherited from class org.codehaus.groovy.ast.AnnotatedNode
addAnnotation, addAnnotation, addAnnotations, getAnnotations, getAnnotations, getDeclaringClass, getGroovydoc, getInstance, hasNoRealSourcePosition, isSynthetic, setDeclaringClass, setHasNoRealSourcePosition, setSyntheticMethods inherited from class org.codehaus.groovy.ast.ASTNode
copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getMetaDataMap, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setMetaDataMap, setSourcePositionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods inherited from interface org.codehaus.groovy.ast.NodeMetaDataHandler
copyNodeMetaData, getNodeMetaData, getNodeMetaData, getNodeMetaData, newMetaDataMap, putNodeMetaData, removeNodeMetaData, setNodeMetaData
-
Constructor Details
-
TupleExpression
public TupleExpression()Creates an empty tuple expression with zero initial capacity. -
TupleExpression
Creates a tuple expression containing a single expression.- Parameters:
expr- the expression to add (non-null)
-
TupleExpression
Creates a tuple expression containing two expressions.- Parameters:
expr1- the first expression (non-null)expr2- the second expression (non-null)
-
TupleExpression
Creates a tuple expression containing three expressions.- Parameters:
expr1- the first expression (non-null)expr2- the second expression (non-null)expr3- the third expression (non-null)
-
TupleExpression
public TupleExpression(int capacity) Creates a tuple expression with pre-allocated capacity.- Parameters:
capacity- the initial capacity for the internal list
-
TupleExpression
Creates a tuple expression from an existing list of expressions.- Parameters:
expressions- the list of expressions (non-null)
-
TupleExpression
Creates a tuple expression from an array of expressions.- Parameters:
expressionArray- the array of expressions (non-null)
-
-
Method Details
-
addExpression
Adds an expression to this tuple.- Parameters:
expression- the expression to add (non-null)- Returns:
- this tuple expression for method chaining
-
getExpression
Returns the expression at the specified index.- Parameters:
i- the index of the expression- Returns:
- the expression at the specified index
- Throws:
IndexOutOfBoundsException- if the index is out of range
-
getExpressions
Returns the list of all expressions in this tuple. Note: The returned list may be mutable; modifications affect this tuple.- Returns:
- a list of expressions (non-null)
-
iterator
Returns an unmodifiable iterator over the expressions in this tuple.- Specified by:
iteratorin interfaceIterable<Expression>- Returns:
- an iterator of expressions
-
visit
Description copied from class:ASTNodeAccepts a code visitor for AST traversal and transformation. Subclasses must implement this method to support visitor pattern-based processing. The visitor pattern enables decoupling of AST structure from processing logic.- Overrides:
visitin classASTNode- Parameters:
visitor- theGroovyCodeVisitorto process this node
-
transformExpression
Description copied from class:ExpressionTransforms this expression and any nested expressions according to the provided transformer. This method is called during AST transformation phases and must recursively transform any nested expressions to support full AST tree transformation.- Specified by:
transformExpressionin classExpression- Parameters:
transformer- theExpressionTransformerto apply- Returns:
- a transformed copy of this expression (or this expression itself if no changes are needed)
-
getText
Description copied from class:ASTNodeReturns a human-readable text representation of this AST node. Used for debugging and error messages. Default implementation returns a message indicating the representation is not yet implemented for this node type. -
toString
-