package ql.ast.statement;
import ql.ast.Expression;
import ql.ast.Statement;
import ql.ast.visitor.StatementVisitor;
public class IfElse extends Statement {
private final Expression expression;
private final Block ifBranch;
private final Block elseBranch;
/**
* Constructor for the conditional block
* @param statement
*/
public IfElse(Expression expression, Block ifBranch, Block elseBranch) {
this.expression = expression;
this.ifBranch = ifBranch;
this.elseBranch = elseBranch;
}
public Expression getExpression() {
return this.expression;
}
public Block getIfBranch() {
return this.ifBranch;
}
public Block getElseBranch() {
return this.elseBranch;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder("IfElse(");
sb.append(getExpression().toString() + ", ");
sb.append(getIfBranch().toString() + ", ");
sb.append(getElseBranch().toString());
sb.append(")");
return sb.toString();
}
@Override
public <T> T accept(StatementVisitor<T> visitor) {
return visitor.visit(this);
}
}