Class IfStatement

All Implemented Interfaces:
NodeMetaDataHandler

public class IfStatement extends Statement
Represents an if (condition) { then-block } else { else-block } conditional statement in Groovy. The if statement evaluates a boolean BooleanExpression and executes one of two code paths: the if block if the condition is true, or the else block (if present) if the condition is false. The else block defaults to an empty statement if not explicitly provided.
See Also:
  • Constructor Details

    • IfStatement

      public IfStatement(BooleanExpression booleanExpression, Statement ifBlock, Statement elseBlock)
      Constructs an IfStatement with a condition and then/else code blocks.
      Parameters:
      booleanExpression - the BooleanExpression to evaluate; must not be null
      ifBlock - the Statement to execute if the condition is true; must not be null
      elseBlock - the Statement to execute if the condition is false, or null for no else clause
  • Method Details

    • setBooleanExpression

      public void setBooleanExpression(BooleanExpression booleanExpression)
      Sets the BooleanExpression that is evaluated to determine control flow.
      Parameters:
      booleanExpression - the BooleanExpression to evaluate; must not be null
      Throws:
      NullPointerException - if booleanExpression is null
    • setIfBlock

      public void setIfBlock(Statement statement)
      Sets the Statement to execute when the condition is true.
      Parameters:
      statement - the then-block Statement; must not be null
      Throws:
      NullPointerException - if statement is null
    • setElseBlock

      public void setElseBlock(Statement statement)
      Sets the Statement to execute when the condition is false. If null is provided, the else block is replaced with an empty statement.
      Parameters:
      statement - the else-block Statement, or null for no else clause
    • 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
    • getBooleanExpression

      public BooleanExpression getBooleanExpression()
      Returns the BooleanExpression that is evaluated to determine which code path to execute.
      Returns:
      the BooleanExpression representing the condition
    • getIfBlock

      public Statement getIfBlock()
      Returns the Statement to execute when the condition is true.
      Returns:
      the then-block Statement
    • getElseBlock

      public Statement getElseBlock()
      Returns the Statement to execute when the condition is false. Returns EmptyStatement.INSTANCE if no else clause was specified.
      Returns:
      the else-block Statement
    • 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