/** * * @return An (ordered) collection of the available grade values */ public Collection<String> getGrades() { return (getGradingScale() != null) ? getGradingScale().getGrades() : Collections.emptyList(); }
@Override public int compare(final CourseGradeRecord cgr1, final CourseGradeRecord cgr2) { if (cgr1 == null && cgr2 == null) { return 0; } if (cgr1 == null) { return -1; } if (cgr2 == null) { return 1; } final String enteredGrade1 = StringUtils.trimToEmpty(cgr1.getEnteredGrade()); final String enteredGrade2 = StringUtils.trimToEmpty(cgr2.getEnteredGrade()); // Grading scales are always defined in descending order. final List<String> grades = mapping.getGradingScale().getGrades(); int gradePos1 = -1; int gradePos2 = -1; for (int i = 0; (i < grades.size()) && ((gradePos1 == -1) || (gradePos2 == -1)); i++) { final String grade = grades.get(i); if (grade.equals(enteredGrade1)) { gradePos1 = i; } if (grade.equals(enteredGrade2)) { gradePos2 = i; } } return gradePos2 - gradePos1; } };