Są trzy klasy lessona, które służą do innych celów:
LessonDef - To jest to co otrzymujemy z api. Tutaj jest definicja ICalendara, więc taki obiekt LessonDef może reprezentować np. serię piętnastu zajęć
Lesson - Reprezentacja pojedyńczej lekcji i odpowiednim duration oraz startTime na podstawie LessonDef (czyli np. z LessonDef powstaje 15x Lesson)
LessonData - Obiekt, który posłuży nam do wyświetlania lekcji na froncie. Powstaje on z Lesson i posiada dodatkowe info na temat z jakiego planu zajęć on pochodzi (Subject, StudySemester, StudyProgram).
Dodane mixiny od parsowania icalendarowych stringów
ParseICalendar - parsuje stringa ICalendara i trzyma w podręcznym cache. Używany na obiekcie LessonDef
CreateLessons - Wyciąga dane na temat lekcji ze sparsowanego stringa ICalendara (dzięki ParseICalendar) i dodaje utworzone tak obiekty Lesson do Map<Day, List<Lesson>>. Te listy nie są posortowane. Używany na Subject
CollectLessonData -> Zbiera wszystkie Lesson'y dla każdego z dni ze wszystkich danych StudyProgramów (Dla planu lecturera tu może być więcej niż jeden. Dla studenta będzie to tylko jeden StudyProgram) i dodaje już do finalnej mapy Map<Day, List<LessonData>>, gdzie listy są już posortowane. Ta mapa będzie już wyświetlana na ekranie planu zajęć. Używany na StudyProgramExt lub LecturerExt
Map<Day, List<Lesson>>
. Te listy nie są posortowane. Używany na SubjectMap<Day, List<LessonData>>
, gdzie listy są już posortowane. Ta mapa będzie już wyświetlana na ekranie planu zajęć. Używany na StudyProgramExt lub LecturerExt