Class TupleExpression

All Implemented Interfaces:
GroovydocHolder<AnnotatedNode>, Iterable<Expression>, NodeMetaDataHandler
Direct Known Subclasses:
ArgumentListExpression

public class TupleExpression extends Expression implements Iterable<Expression>
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.
  • Constructor Details

    • TupleExpression

      public TupleExpression()
      Creates an empty tuple expression with zero initial capacity.
    • TupleExpression

      public TupleExpression(Expression expr)
      Creates a tuple expression containing a single expression.
      Parameters:
      expr - the expression to add (non-null)
    • TupleExpression

      public TupleExpression(Expression expr1, Expression expr2)
      Creates a tuple expression containing two expressions.
      Parameters:
      expr1 - the first expression (non-null)
      expr2 - the second expression (non-null)
    • TupleExpression

      public TupleExpression(Expression expr1, Expression expr2, Expression expr3)
      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

      public TupleExpression(List<Expression> expressions)
      Creates a tuple expression from an existing list of expressions.
      Parameters:
      expressions - the list of expressions (non-null)
    • TupleExpression

      public TupleExpression(Expression[] expressionArray)
      Creates a tuple expression from an array of expressions.
      Parameters:
      expressionArray - the array of expressions (non-null)
  • Method Details

    • addExpression

      public TupleExpression addExpression(Expression expression)
      Adds an expression to this tuple.
      Parameters:
      expression - the expression to add (non-null)
      Returns:
      this tuple expression for method chaining
    • getExpression

      public Expression getExpression(int i)
      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

      public List<Expression> 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

      public Iterator<Expression> iterator()
      Returns an unmodifiable iterator over the expressions in this tuple.
      Specified by:
      iterator in interface Iterable<Expression>
      Returns:
      an iterator of expressions
    • visit

      public void visit(GroovyCodeVisitor visitor)
      Description copied from class: ASTNode
      Accepts 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:
      visit in class ASTNode
      Parameters:
      visitor - the GroovyCodeVisitor to process this node
    • transformExpression

      public Expression transformExpression(ExpressionTransformer transformer)
      Description copied from class: Expression
      Transforms 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:
      transformExpression in class Expression
      Parameters:
      transformer - the ExpressionTransformer to apply
      Returns:
      a transformed copy of this expression (or this expression itself if no changes are needed)
    • getText

      public String getText()
      Description copied from class: ASTNode
      Returns 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.
      Overrides:
      getText in class ASTNode
      Returns:
      text representation of this node, or placeholder for unimplemented types
    • toString

      public String toString()
      Overrides:
      toString in class Object