public boolean uploadResult(Lecturer lecturer, Student student, String result) throws NullPointerException {
Schedule currentSchedule = scheduleService.findCurrentSchedule();
if (currentSchedule.getWeek() != 12) {
throw new IllegalArgumentException("Cannot upload result until the end of the semester.");
}
Student stu = studentService.findOne(student);
List<Enrolment> enrolments = stu.getPerformance();
Enrolment enrolment = null;
for (Enrolment e : enrolments) {
CourseOffering offering = e.getOffering();
if (offering.getLecturer().equals(lecturer) && offering.getSchedule().equals(currentSchedule)) {
enrolment = e;
break;
}
}
if (enrolment == null) {
throw new NullPointerException("There is no such student in the lecturer's course");
}
enrolment.setResult(result);
studentService.save(student);
return true;
}
Я пытаюсь понять приведенный выше код, чтобы проиллюстрировать его на диаграмме последовательности, но у меня возникли некоторые затруднения с пониманием некоторых из них, особенно этой части:
List<Enrolment> enrolments = stu.getPerformance();
Enrolment enrolment = null;
for (Enrolment e : enrolments) {
CourseOffering offering = e.getOffering();
if (offering.getLecturer().equals(lecturer) &&
offering.getSchedule().equals(currentSchedule)) {
enrolment = e;
break;
Моя текущая диаграмма последовательности в процессе выполнения (ССЫЛКА)