Question.java

package com.github.quizclash.domain;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Question {
  private final int id;
  private final String question;
  private final QuestionOption[] questionOptions;

  public Question(int id, String question, QuestionOption[] questionOptions)
      throws InvalidQuestionFormatException {
    this(id, question, questionOptions, true);
  }

  public Question(int id, String question, QuestionOption[] questionOptions, boolean shuffle)
      throws InvalidQuestionFormatException {
    this.id = id;
    this.question = question;
    List<QuestionOption> options = Arrays.asList(QuestionValidator.validate(questionOptions));
    if (shuffle) {
      Collections.shuffle(options);
    }
    this.questionOptions = options.toArray(new QuestionOption[0]);
  }

  public int getId() {
    return id;
  }

  public String getQuestion() {
    return question;
  }

  public QuestionOption[] getQuestionOptions() {
    return questionOptions;
  }

  public boolean checkAnswer(int indexOfAnswer) {
    return questionOptions[indexOfAnswer].isRight();
  }
}