public interface AbstractGroupeFactory
Modifier and Type | Method and Description |
---|---|
void |
addToGroupe(Groupe g,
Etudiant e)
permet d'ajouter un étudiant à un groupe.
|
void |
createGroupe(Groupe pere,
java.lang.String name,
int min,
int max)
permet d'ajouter un groupe vide de type FREE comme sous-groupe d'un groupe donné.
|
void |
createPartition(Groupe pere,
java.lang.String name,
int n)
permet de créer une partition automatiquement sous un groupe donné.
|
void |
deleteGroupe(Groupe g)
permet de supprimer un groupe connu de l'usine abstraite qui ne contient pas de groupes.
|
void |
dropFromGroupe(Groupe g,
Etudiant e)
permet d'enlever un étudiant d'un groupe.
|
java.util.Set<Etudiant> |
getEtudiants(java.lang.String nomEtu)
permet de retrouver un étudiant à partir d'un String.
|
java.util.Set<Groupe> |
getGroupesOfEtudiant(Etudiant etu)
permet de retrouver les groupes d'un étudiant.
|
Groupe |
getPromotion()
permet de récupérer le Groupe qui contient les étudiants de toute la promotion
|
java.lang.Boolean |
knows(Groupe g)
Test si le groupe g est connu de l'usine (connu maintenant).
|
Groupe getPromotion()
java.lang.Boolean knows(Groupe g)
void deleteGroupe(Groupe g)
java.lang.NullPointerException
- si un argument est nulljava.lang.IllegalStateException
- si le groupe contient des groupesjava.lang.IllegalArgumentException
- si le groupe n'est pas connu de l'usine abstraite ou bien si le groupe est celui de toute la promotion (renvoyé par getPromotion)void createGroupe(Groupe pere, java.lang.String name, int min, int max)
pere
- le groupe père du groupe à créername
- le nom du groupe à créermin,max
- bornes indicatives sur la taille du groupe à créerjava.lang.NullPointerException
- si un argument est nulljava.lang.IllegalArgumentException
- si le groupe pere est de type PARTITION
ou si il n'y a pas 0 < min <= maxvoid createPartition(Groupe pere, java.lang.String name, int n)
pere
- le groupe père du groupe à partitionnername
- le nom des groupe à créer (on ajoutera à la suite un numéro ou une lettre pour distinguer chaque groupe)n
- le nombre de partitionsjava.lang.NullPointerException
- si un argument est nulljava.lang.IllegalArgumentException
- si le groupe pere est de type PARTITION
ou n négatif ou nul
NB. doit créer une "copie" de pere sous pere de type Partition et ajouter sous ce groupe, n groupes de type "FREE". les valeurs min et max de ces n groupes sont min = 0 et max = partie entière de N/n plus 1, où N est le nombre max du groupe pere.
void addToGroupe(Groupe g, Etudiant e)
g
- le groupe dans lequel il faut ajouter l'étudiante
- l'étudiant à ajouterjava.lang.NullPointerException
- si un argument est nulljava.lang.IllegalArgumentException
- la factory ne connaît pas gjava.lang.IllegalStateException
- le père de g ne contient pas evoid dropFromGroupe(Groupe g, Etudiant e)
g
- le groupe dans lequel il faut enlever l'étudiante
- l'étudiant à enleverjava.lang.NullPointerException
- si un argument est nulljava.lang.IllegalStateException
- g ne contient pas ejava.lang.IllegalArgumentException
- la factory ne connaît pas gjava.util.Set<Etudiant> getEtudiants(java.lang.String nomEtu)
NB. dans une version simple il doit s'agir du nom exact. dans une version un peu plus complexe, il s'agit des premières lettres du nom dans une version avancée, on peut autoriser une expression régulière plus ou moins complexe qui est générée si la première recherche n'a pas renvoyé de candidat.
String
- nomEtu le nom approximmatif de l'étudiantjava.lang.NullPointerException
- si le String est null.