Extend the class model:
How to navigate and query an object model.
double assignmentPoints = university.getRooms().getAssignments().getPoints().sum();
double donePoints = university.getStudents().getDone().getPoints().sum();
Results in:
Sum of assignment points: 23.0. Sum of points of assignments that have been done by at least one students: 15.0.
Check: Assignment points: 23.0 actual 23.0
Check: donePoints: 15.0 actual 15.0
AssignmentSet availableAssignments = university.getRooms().getAssignments().minus(karli.getDone());
RoomSet rooms = availableAssignments.getRoom();
Results in:
(17 senate math, 25 gymnasium sports)
Check: rooms.size(): 2 actual 2
RoomSet rooms17 = university.getRooms().createCreditsCondition(17);
RoomSet roomsGE20 = university.getRooms().createCreditsCondition(20, Integer.MAX_VALUE);
Results in:
rooms17: (17 senate math) roomsGE20: (25 gymnasium sports, 42 7422 Software Engineering)
SimpleSet<Room> roomsEven = university.getRooms().filter(r -> r.getCredits() % 2 == 0);
Results in:
(16 7522 arts, 0 The End exam, 42 7422 Software Engineering)
// TOODO TeachingAssistantSet taStudents = university.getRooms().getStudents().instanceOfTeachingAssistant();
StudentSet taStuds = university.getRooms().getStudents().filter(s -> s instanceof TeachingAssistant);
TeachingAssistantSet taStudents = new TeachingAssistantSet().with(taStuds);
(0 0 4242 0 Karli)
university.getStudents().withMotivation(42);