2022-10-26 15:10:08 +02:00
|
|
|
package fr.iutfbleau.projetIHM2022FI2.API;
|
|
|
|
import java.util.*;
|
|
|
|
/**
|
|
|
|
* Usine abstraite gérant l'ensemble des changements.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
public interface AbstractChangementFactory {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* permet de récupérer une usine abstraite pour les groupes qui fonctionne en tandem avec cette usine abstraite
|
2022-10-31 12:53:56 +01:00
|
|
|
* @return cette usine abstraite pour les groupes
|
2022-10-26 15:10:08 +02:00
|
|
|
*/
|
|
|
|
public AbstractGroupeFactory getGroupeFactory();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* permet de récupérer les changements
|
2022-10-31 12:53:56 +01:00
|
|
|
* @return l'ensemble de tous les changements en attente
|
|
|
|
*
|
|
|
|
* NB. Attention. C'était Iterator<Changement> dans la version beta.
|
2022-10-26 15:10:08 +02:00
|
|
|
*/
|
2022-10-31 12:53:56 +01:00
|
|
|
public Set<Changement> getAllChangements();
|
2022-10-26 15:10:08 +02:00
|
|
|
|
2022-10-31 12:53:56 +01:00
|
|
|
/**
|
|
|
|
* permet de mettre en oeuvre un changement connu de l'usine abstraite.
|
|
|
|
* En cas de succès, le changement est oublié (détruit).
|
|
|
|
*
|
|
|
|
* @throws java.lang.NullPointerException si un argument est null
|
|
|
|
* @throws java.lang.IllegalArgumentException si inconnu de l'usine abstraite
|
|
|
|
*/
|
|
|
|
public void applyChangement(Changement c);
|
|
|
|
|
2022-10-26 15:10:08 +02:00
|
|
|
/**
|
|
|
|
* permet de supprimer un changement connu de l'usine abstraite.
|
|
|
|
*
|
|
|
|
* @throws java.lang.NullPointerException si un argument est null
|
|
|
|
* @throws java.lang.IllegalArgumentException si inconnu de l'usine abstraite
|
|
|
|
*/
|
|
|
|
public void deleteChangement(Changement c);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* permet d'ajouter un nouveau changement.
|
|
|
|
*
|
|
|
|
* @param A groupe actuel
|
|
|
|
* @param B groupe demandé
|
|
|
|
* @param e étudiant concerné par le changement
|
|
|
|
*
|
|
|
|
* @throws java.lang.NullPointerException si un argument est null
|
|
|
|
* @throws java.lang.IllegalArgumentException si les groupes ou l'étudiant ne sont pas connus de la factory partenaire, ou e n'appartient pas à A ou A et B ne sont pas frères dans l'arbre des groupes.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public void createChangement(Groupe A, Etudiant e, Groupe B);
|
|
|
|
|
|
|
|
}
|