private void validateNumberOfQuestions(CreateQuestion createQuestion, Errors errors) { ValidationUtils.rejectIfEmpty( errors, "createQuestion.numCorrect", "required.numCorrect", "Correct answers have to be minimum 1"); ValidationUtils.rejectIfEmpty( errors, "createQuestion.numIncorrect", "required.numIncorrect", "Incorrect answers have to be minimum 3"); if (createQuestion.getNumCorrect() + createQuestion.getNumIncorrect() <= 0) errors.rejectValue("", "invalid.answer.number", "you need to add at lest one answer"); }
private void validateAnswerFields(CreateQuestion createQuestion, Errors errors) { Question question = createQuestion.getQuestion(); if (question.getAnswers().size() != createQuestion.getNumCorrect() + createQuestion.getNumIncorrect()) errors.rejectValue("", "invalid.answers", "all answers are mandatory"); for (Answer answer : question.getAnswers()) { if (!answer.isValid()) { errors.rejectValue( "", "invalid.answers", "all answers and their hints are mandatory and cannot be left blank"); return; } } }
private void validateTopicHasQuestions(CreateQuestion createQuestion, Errors errors) { int count = this.questionService.getNumberOfQuestionsInTheTopic(createQuestion.getTopic(), errors); if (count == 0) errors.rejectValue( "", "invalid.answers", "topic has no answers. select a topic that has one"); }