- clasă abstractă moștenită de Command, Query și Recommendation în care este definită metoda abstractă care va fi apelată în main pentru execuția acțiunilor
- câmpurile fiecărei clase reprezintă parametrii necesari execuției tipului de acțiune (nu sunt comuni => nu au reprezentare în Action)
- fiecare metodă execută câte un tip de comandă/query/recomandare (denumirile acestora fiind corespunzătoare tipului)
- clasă ale cărei câmpuri reprezintă datele specifice unui obiect de tip Actor
- clasă în care am definit constantele de care am avut nevoie pentru citirea datelor corespunzătoare acțiunilor
- clasă abstractă moștenită de Movie și Show în care sunt definite atât metode abstracte (care sunt comune celor două subclase ca și scop, dar nu ca și implementare), cât și o metodă care nu necesită diferențierea între cele două entități
- câmpurile fiecărei clase reprezintă datele specifice unui obiect de tip Movie/Show/Season
- această clasă reprezintă baza de date
- câmpurile sunt exclusiv liste care conțin entitățile temei
- metodele regăsite aici sunt de trei tipuri:
- de căutare și găsire a unei entități având ca parametru numele acesteia
- de adăugat modificări asupra bazei de date (obținute în cadrul acțiunilor)
- de colectare a diferitelor informații care au legătură cu mai multe entități simultan
- clasă ale cărei câmpuri reprezintă datele specifice unui obiect de tip User
- interfață cu o singură metodă care filtrează o listă în funcție de criteriile primite ca parametru
- este implementată în Recommendation
- clasă în care apelez constructorii din clasele Actor, User, Movie, Show, Command, Query și Recommendation pentru a le atribui câmpurilor valorile citite din input
- interfață cu o singură metodă care sortează un map în funcție de parametrii primiți
- este implementată în clasele Query și Recommendation
Commit-urile anterioare conțin implementarea temei cu biblioteca Lombok, dar VmChecker nu acceptă acea versiune.