Vérification contraintes Calendar - Agent
Une fois le ticket 5 résolu, vérifier les contraintes sur l'association (bidirectionnelle) Calendar <-> Agent
.
Problème : On a une association bidirectionnelle entre Agent et Calendar, un agent a forcémentun et un seul calendar et un calendar est forcément lié à un agent. Il faut donc vérifier cette condition et vérifier lors d'une modification qu'un agent sera toujours lié à un calendar et vice-versa.
Solution : Dans chaque constructeur des deux objets Calendar et Agent on passe respectivement en paramètre un Agent et un Calendar.
-
Pour la classe Calendar : quand on crée un Calendar on passe en paramètre un Agent (le paramètre owner) on appelle alors la méthode setOwner qui prend l'agent en paramètre, cette méthode va vérifier si l'agent est n'est pas null et sinon renvoyer une IllegalArgumentException, elle va aussi vérifier que l'agent n'a pas déjà un calendrier attribué et renvoyer une IllegalArgumentException sinon. Pour finir on appelle la méthode basicSetCal de l'agent pour set le calendar à l'agent.
-
Pour la classe Agent : quand on créee un Agent on lui passe en paramètre un calendar on appelle alors la méthode setCal qui prends un agent en paramètre, on procède de la même manière que précédemment, on vérifie que le calendar n'est pas null ou si il n'appartient pas déjà à un autre agent. Si il est null on l'instancie avec un calendar vide. Puis pour finir on appelle la méthode basicSetOwner du calendar pour set l'agent au calendar.