package nl.uva.sc.encoders.ql.ast; import static nl.uva.sc.encoders.ql.ast.QuestionBuilder.aQuestion; import static nl.uva.sc.encoders.ql.ast.TextLocationBuilder.aTextLocation; import java.util.ArrayList; import java.util.List; import nl.uva.sc.encoders.ql.ast.expression.Expression; import nl.uva.sc.encoders.ql.ast.expression.LiteralExpression; import nl.uva.sc.encoders.ql.ast.literal.BooleanLiteral; import nl.uva.sc.encoders.ql.ast.statement.ConditionalBlock; import nl.uva.sc.encoders.ql.ast.statement.Question; public class ConditionalBlockBuilder { private List<Question> questions = new ArrayList<>(); private Expression condition; private TextLocation textLocation; public static ConditionalBlockBuilder aConditionalBlock() { ConditionalBlockBuilder conditionalBlockBuilder = new ConditionalBlockBuilder(); conditionalBlockBuilder.condition = new LiteralExpression(aTextLocation().build(), new BooleanLiteral(true)); conditionalBlockBuilder.questions.add(aQuestion().build()); conditionalBlockBuilder.textLocation = aTextLocation().build(); return conditionalBlockBuilder; } public ConditionalBlock build() { return new ConditionalBlock(textLocation, condition, questions); } public ConditionalBlockBuilder withCondition(Expression condition) { this.condition = condition; return this; } public ConditionalBlockBuilder withQuestions(List<Question> questions) { this.questions = questions; return this; } }