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.statement.ConditionalBlock; import nl.uva.sc.encoders.ql.ast.statement.Question; import nl.uva.sc.encoders.ql.ast.statement.Statement; public class QuestionnaireBuilder { private TextLocation textLocation; private String name; private List<Statement> statements = new ArrayList<>(); public static QuestionnaireBuilder aQuestionnaire() { QuestionnaireBuilder questionnaireBuilder = new QuestionnaireBuilder(); questionnaireBuilder.textLocation = aTextLocation().build(); questionnaireBuilder.name = "TaxOfficeExample"; questionnaireBuilder.statements.add(aQuestion().build()); return questionnaireBuilder; } public Questionnaire build() { return new Questionnaire(textLocation, name, statements); } public QuestionnaireBuilder withQuestions(List<Question> questions) { statements.clear(); statements.addAll(questions); return this; } public QuestionnaireBuilder withConditionalBlocks(List<ConditionalBlock> conditionalBlocks) { statements.clear(); statements.addAll(conditionalBlocks); return this; } public QuestionnaireBuilder withStatements(List<Statement> statements) { this.statements = statements; return this; } }