Mange film har jo ikke kun én genre, men ofte to, tre eller flere, så vores Film objekt bør gemme en liste, eller blot en “samling” af genrer. Så vi kan ændre genre til at være en Collection af Genres, og indtil videre implementerer vi den bare som en ArrayList som vi kender:

image.png

I vores constructor modtager vi én genre, og i stedet for at “sætte” filmens genre til den ene, tilføjer vi den til samlingen af genrer:

image.png

Vores getter og setter kan vi ikke rigtig bruge mere, så ud med dem, og erstat dem med nogle nye:

Ud med

image.png

og erstat med

image.png

Vi skal også lige finde de steder hvor .getGenre() blev brugt - for eksempel i udskrifter - og erstatte med .getGenres().

Og så skal vi jo ændre hasGenre(), så den ikke længere tjekker om den ene genre er sat, men i stedet om den pågældende genre indgår i samlingen af genrer … det ved vi allerede hvordan man gør, for hvordan tjekkede vi om en Film var i Playlisten? Samme princip her!

Nu burde programmet virke præcis som hidtil - fordi vi har wrappet al funktionalitet i vores egne metoder, så er der ikke noget der er afhængigt af om der er en eller flere genrer, så filtrering og alting virker stadig.

Cool - det skal fejres med en commit:

<aside> <img src="/icons/git_green.svg" alt="/icons/git_green.svg" width="40px" />

Commit med beskeden: “A film can now have multiple genres”

</aside>

Tilføj flere genrer

Vi opretter stadig kun film med en enkelt genre, og vi vil gerne gøre det nemt at tilføje flere.

Lad os starte med den umiddelbare løsning: tilføj en .addGenre( Genre genre ) metode til Film!

Tilføj den, og brug den til at give ekstra genrer til nogle af filmene, for eksempel således: