Facebook Deel2: Klasse Facebook
Instantievariebelen
- Voeg een instantievariabele accounts toe die een collectie Account objecten bijhoudt. Deze collectie stelt alle geregistreerde gebruikers van Facebook voor. Er is geen bovengrens voor het aantal accounts die bijgehouden kunnen worden en het moet mogelijk zijn om dynamisch nog extra accounts toe te voegen aan de instantievariabele of ze te verwijderen (hiervoor hoef je echter geen extra methodes te voorzien). Zorg ervoor dat de objecten in de collectie in een bepaalde volgorde bijgehouden worden (dus dat ze een index hebben).
Methodes
- Maak een constructor voor de klasse zonder parameters die de collectie van accounts initialiseert als een lege collectie.
- Voeg een accessormethode voor de collectie van accounts toe.
- Maak een methode addAccount die een Account object als parameter heeft. Indien de login van de gegeven account al in gebruik is, wordt het programma afgesloten. Alternatief, voegt de methode de gegeven account toe aan de collectie accounts.
- Maak een methode addFriendship die twee Account objecten als parameters heeft. De methode maakt de twee accounts vrienden van elkaar.
- Maak een methode removeFriendship die een Account object en een String als parameters heeft. De methode verbreekt de vriendschap tussen de gegeven account en de account die hoort bij de gegeven login. Indien er daadwerkelijk een vriendschap verbroken is geworden, zal de methode ‘true’ teruggeven, anders ‘false’ (in het geval dat ze voorafgaande al geen vrienden waren).
- Maak een methode addPost die een Post object en een Account object als parameters heeft. Indien de post gemaakt is door de gegeven account of door een rechtstreekse vriend van de gegeven account, wordt de post toegevoegd aan de wall van de gegeven account. Indien de post niet aan de wall werd toegevoegd, door het niet vervullen van de voorwaarde, wordt het programma afgesloten.
- Maak een methode search die een Integer als parameter heeft. De methode zoekt het Post object met de overeenkomstige postID. Indien er geen Post gevonden kan worden met de gegeven postID, geeft de methode ‘null’ terug.
- Maak een methode like die een Account object en een Integer als parameters heeft. Indien er geen post bestaat met de gegeven postID, wordt het programma afgesloten. Alternatief wordt de gegeven like toegevoegd aan de collectie van likes van de gegeven account.
- Maak een methode removeLike die een Account object en een Post object als parameters heeft. De methode verwijdert de like die door de gegeven account is geplaatst bij de gegeven post.
- Maak een methode getNewsFeed die een String als parameter heeft. De methode geeft de newsfeed terug voor de account die bij de gegeven login hoort. Indien de account niet bestaat, wordt het programma afgesloten. De newsfeed is een collectie van Post objecten, gesorteerd van nieuw naar oud. In de newsfeed zitten zowel de posts van de wall van de meegegeven account, als de posts van de walls van diens vrienden.