Class CaseStatement

All Implemented Interfaces:
NodeMetaDataHandler

public class CaseStatement extends Statement
Represents a case arm of a SwitchStatement or a SwitchExpression. A case consists of a pattern (expression) to match against the switch selector and the statement to execute if the pattern matches.
  • Constructor Details

    • CaseStatement

      public CaseStatement(Expression expression, Statement code)
      Constructs a case statement with the given expression pattern and code block.
      Parameters:
      expression - the Expression pattern to match against the switch control expression
      code - the Statement to execute if the pattern matches
  • Method Details

    • getCode

      public Statement getCode()
      Returns the statement executed if this case pattern matches.
      Returns:
      the Statement associated with this case
    • setCode

      public void setCode(Statement code)
      Sets the statement executed if this case pattern matches.
      Parameters:
      code - the Statement to execute
    • getExpression

      public Expression getExpression()
      Returns the pattern expression matched against the switch control expression.
      Returns:
      the pattern Expression
    • setExpression

      public void setExpression(Expression e)
      Sets the pattern expression matched against the switch control expression.
      Parameters:
      e - the pattern Expression
    • isArrow

      public boolean isArrow()
      Indicates whether this case uses an arrow label (case L ->) rather than a colon label (case L:). Arrow labels do not fall through (JEP 361).
      Returns:
      true if this case was written with ->
      Since:
      6.0.0
    • setArrow

      public void setArrow(boolean arrow)
      Marks this case as an arrow label (case L ->) or a colon label.
      Parameters:
      arrow - true if this case was written with ->
      Since:
      6.0.0
    • 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
    • toString

      public String toString()
      Overrides:
      toString in class Object