Package org.codehaus.groovy.ast.stmt
Class IfStatement
java.lang.Object
org.codehaus.groovy.ast.ASTNode
org.codehaus.groovy.ast.stmt.Statement
org.codehaus.groovy.ast.stmt.IfStatement
- All Implemented Interfaces:
NodeMetaDataHandler
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.-
Constructor Summary
ConstructorsConstructorDescriptionIfStatement(BooleanExpression booleanExpression, Statement ifBlock, Statement elseBlock) Constructs an IfStatement with a condition and then/else code blocks. -
Method Summary
Modifier and TypeMethodDescriptionReturns theBooleanExpressionthat is evaluated to determine which code path to execute.Returns theStatementto execute when the condition is false.Returns theStatementto execute when the condition is true.getText()Returns a human-readable text representation of this AST node.voidsetBooleanExpression(BooleanExpression booleanExpression) Sets theBooleanExpressionthat is evaluated to determine control flow.voidsetElseBlock(Statement statement) Sets theStatementto execute when the condition is false.voidsetIfBlock(Statement statement) Sets theStatementto execute when the condition is true.voidvisit(GroovyCodeVisitor visitor) Accepts a code visitor for AST traversal and transformation.Methods inherited from class org.codehaus.groovy.ast.stmt.Statement
addStatementAnnotation, addStatementLabel, copyStatementLabels, getStatementAnnotations, getStatementLabel, getStatementLabels, isEmpty, setStatementLabelMethods 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, toString, wait, wait, waitMethods inherited from interface org.codehaus.groovy.ast.NodeMetaDataHandler
copyNodeMetaData, getNodeMetaData, getNodeMetaData, getNodeMetaData, newMetaDataMap, putNodeMetaData, removeNodeMetaData, setNodeMetaData
-
Constructor Details
-
IfStatement
Constructs an IfStatement with a condition and then/else code blocks.- Parameters:
booleanExpression- theBooleanExpressionto evaluate; must not be nullifBlock- theStatementto execute if the condition is true; must not be nullelseBlock- theStatementto execute if the condition is false, or null for no else clause
-
-
Method Details
-
setBooleanExpression
Sets theBooleanExpressionthat is evaluated to determine control flow.- Parameters:
booleanExpression- theBooleanExpressionto evaluate; must not be null- Throws:
NullPointerException- if booleanExpression is null
-
setIfBlock
Sets theStatementto execute when the condition is true.- Parameters:
statement- the then-blockStatement; must not be null- Throws:
NullPointerException- if statement is null
-
setElseBlock
Sets theStatementto execute when the condition is false. If null is provided, the else block is replaced with an empty statement.- Parameters:
statement- the else-blockStatement, or null for no else clause
-
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
-
getBooleanExpression
Returns theBooleanExpressionthat is evaluated to determine which code path to execute.- Returns:
- the
BooleanExpressionrepresenting the condition
-
getIfBlock
Returns theStatementto execute when the condition is true.- Returns:
- the then-block
Statement
-
getElseBlock
Returns theStatementto execute when the condition is false. ReturnsEmptyStatement.INSTANCEif no else clause was specified.- Returns:
- the else-block
Statement
-
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.
-