JsonObject curricularCoursesOvertime = new JsonObject();
int lowestStartYear = Integer.MAX_VALUE;
int highestStartYear = Integer.MIN_VALUE;
JsonArray curricularCoursesJsonArray = new JsonArray();
for (Enrolment enrolment : approvedEnrolments) {
CurricularCourse curricularCourse = enrolment.getCurricularCourse();
JsonObject curricularCourseJsonObject = new JsonObject();
curricularCourseJsonObject.addProperty("name", curricularCourse.getNameI18N().getContent());
JsonArray entriesArray = new JsonArray();
Map<Integer, CurricularCourseYearStatistics> entries = new HashMap<Integer, CurricularCourseYearStatistics>();
for (ExecutionCourse executionCourse : curricularCourse.getAssociatedExecutionCoursesSet()) {
AcademicInterval academicInterval = executionCourse.getAcademicInterval();
int startYear = academicInterval.getStart().getYear();
CurricularCourseYearStatistics curricularCourseYearStatistics =
computeExecutionCourseJsonArray(executionCourse, entries.get(startYear));
if (curricularCourseYearStatistics == null) {