QuestionBuilder.java

package com.github.quizclash.domain;

import java.util.ArrayList;
import java.util.List;

public class QuestionBuilder {
  private int id;
  private String question;
  private final List<QuestionOption> questionOptions;
  private boolean shuffle = true;

  public QuestionBuilder(){
    this.questionOptions = new ArrayList<>();
  }

  public QuestionBuilder setId(int id) {
    this.id = id;
    return this;
  }

  public QuestionBuilder setQuestion(String question) {
    this.question = question;
    return this;
  }

  public QuestionBuilder addQuestionOption(QuestionOption questionOption) {
    this.questionOptions.add(questionOption);
    return this;
  }

  public QuestionBuilder setQuestionShuffling(boolean shuffle) {
    this.shuffle = shuffle;
    return this;
  }

  public Question build() throws InvalidQuestionFormatException {
    return new Question(id, question, questionOptions.toArray(new QuestionOption[0]), shuffle);
  }
}