diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.java index 2788fed..173de61 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.java @@ -15,6 +15,10 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { // Si il y a beaucoup de changements c'est plus rapide que de parcourir toute une liste. private HashMap brain; + /** + * Constructeur de l'usine à changement. + * @param agf l'usine à groupe travaillant en tandem avec cette usine. + */ public AbstractChangementFactoryNP(AbstractGroupeFactory agf){ Objects.requireNonNull(agf,"On ne peut pas créer une usine à changement dont l'usine à groupe parternaire est null"); this.agf=agf; @@ -44,6 +48,8 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { /** * permet de mettre en oeuvre un changement connu de l'usine abstraite. + * + * @param c le changement à mettre en oeuvre. * * @throws java.lang.NullPointerException si un argument est null * @throws java.lang.IllegalStateException si le changement n'a pas de sens en l'état actuel (e.g. étudiant pas dans le groupe de départ a, groupe b inconnu, groupe a inconnu, etc). @@ -70,7 +76,9 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { /** * permet de supprimer un changement connu de l'usine abstraite. - * + * + * @param c le changement à supprimer. + * * @throws java.lang.NullPointerException si un argument est null * @throws java.lang.IllegalArgumentException si inconnu de l'usine abstraite */ @@ -101,7 +109,18 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { this.brain.put(Integer.valueOf(c.getId()),c); } - + /** + * permet d'ajouter un nouveau changement. + * + * @param A groupe actuel + * @param B groupe demandé + * @param e étudiant concerné par le changement + * @param raison la raison du 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. + * + */ @Override public void createChangement(Groupe A, Etudiant e, Groupe B, String raison) { Objects.requireNonNull(A,"Le groupe d'origine ne peut pas être null"); diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java index 87491b1..8c846cb 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java @@ -21,6 +21,11 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { /** * Le constructeur fabrique le groupe promotion vide. * Il faut ensuite y ajouter les étudiants. + * + * @param name le nom de la promotion + * @param min le nombre minimum d'étudiants dans la promotion + * @param max le nombre maximum d'étudiants dans la promotion + * */ public AbstractGroupeFactoryNP(String name, int min, int max){ Objects.requireNonNull(name,"On ne peut pas créer une promotion dont le nom est null"); @@ -31,6 +36,9 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { /** * Test plutôt optimiste. Si la clé est identique alors on fait comme si c'était le bon groupe. + * @param g le groupe à tester + * @return true si le groupe est connu de l'usine abstraite + * */ public Boolean knows(Groupe g){ return this.brain.containsKey(Integer.valueOf(g.getId())); @@ -49,7 +57,9 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { /** * permet de supprimer un groupe connu de l'usine abstraite qui ne contient pas de groupes. * Pour détruire un groupe connu qui en contient d'autres il faut le faire récursivement. - * + * + * @param g le groupe à supprimer + * * @throws java.lang.NullPointerException si un argument est null * @throws java.lang.IllegalStateException si le groupe contient des groupes * @throws java.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) @@ -234,12 +244,24 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { return liste; } + /** + * Ajout a l'API pour changer facilement de nom de groupe + * + * @param g le groupe + * @param name le nom + * @return true si possible + */ @Override public boolean changeNameGroupe(Groupe g, String name) { g.setName(name); return true; } + /** + * refresh le Groupe ainsi que ses etudiants + * @param g le groupe + * @return le groupe refresh/un parent si il a été refresh + */ @Override public Groupe refreshALL(Groupe g) { return g; diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ChangementNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ChangementNP.java index bdd659a..d947837 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ChangementNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ChangementNP.java @@ -12,11 +12,22 @@ public class ChangementNP implements Changement { //auto-incrément des changements private static int nextId=0; - + // id du changement private int id; + // groupe d'origine et d'arrivée private Groupe a,b; + // étudiant concerné private Etudiant e; + // raison de la demande private String raison; + + /** + * Constructeur d'un changement. + * @param a le groupe de départ + * @param b le groupe d'arrivée + * @param e l'étudiant demandant le changement + * @param raison la raison du changement + */ public ChangementNP(Groupe a, Etudiant e, Groupe b){ Objects.requireNonNull(a,"On ne peut pas créer un changement avec un groupe à quitter null"); Objects.requireNonNull(b,"On ne peut pas créer un changement avec un groupe à rejoindre null"); @@ -28,6 +39,14 @@ public class ChangementNP implements Changement { this.e=e; } + /** + * Constructeur d'un changement. + * @param a le groupe de départ + * @param b le groupe d'arrivée + * @param e l'étudiant demandant le changement + * @param raison la raison du changement + * + */ public ChangementNP(Groupe a, Etudiant e, Groupe b, String raison){ Objects.requireNonNull(a,"On ne peut pas créer un changement avec un groupe à quitter null"); Objects.requireNonNull(b,"On ne peut pas créer un changement avec un groupe à rejoindre null"); @@ -70,7 +89,10 @@ public class ChangementNP implements Changement { public Etudiant getEtu(){ return this.e; } - + /** + * permet de récupérer la raison du changement + * @return la raison du changement + */ @Override public String getRaison() { return this.raison; diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java index 4d9df60..2b64982 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java @@ -6,13 +6,18 @@ import java.util.*; */ public class EtudiantNP implements Etudiant{ - + // auto-incrément des étudiants private static int nextId=0; + // id de l'étudiant private int id; + // nom et prénom de l'étudiant private String nom, prenom; /** - * Constructeur. + * Constructeur d'un étudiant. + * @param nom le nom de l'étudiant + * @param prenom le prénom de l'étudiant + * */ public EtudiantNP(String nom, String prenom){ Objects.requireNonNull(nom,"On ne peut pas créer un étudiant avec un nom null"); diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.java index c88542e..9ad28f5 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.java @@ -11,16 +11,25 @@ public class GroupeNP implements Groupe { private static int nextId=0; // attributs naturels induits par getter de l'interface Groupe private int id; + // nom du groupe private String name; + // bornes limitatives du groupe private int min,max; - private TypeGroupe type; + // type de groupe + private TypeGroupe type; + // groupe père private Groupe pointPoint; // On utilise une interface set pour les sous-groupes et pour les membres (ce sont bien des ensembles en pratique). private Set sousGroupes; + // Liste des étudiants du groupe private Set membresDuGroupe; /** * Nouveau groupe vide de type ROOT sans étudiants, sans sous-Groupe + * + * @param name le nom du groupe + * @param min le nombre minimum d'étudiants + * @param max le nombre maximum d'étudiants */ public GroupeNP(String name, int min, int max){ Objects.requireNonNull(name,"On ne peut pas créer un groupe dont le nom est null"); @@ -36,6 +45,12 @@ public class GroupeNP implements Groupe { /** * Nouveau groupe vide de type FREE sans étudiants, sans sous-Groupe + * + * @param name le nom du groupe + * @param min le nombre minimum d'étudiants + * @param max le nombre maximum d'étudiants + * @param pere le groupe père + * */ public GroupeNP(Groupe pere, String name, int min, int max){ Objects.requireNonNull(pere,"On ne peut pas créer un groupe dont le père est null"); @@ -53,6 +68,7 @@ public class GroupeNP implements Groupe { /** * Nouveau groupe de type PARTITION dupliquant le groupe passé en paramètre (pour servir de racine à une partition de ce groupe de type FREE passé en paramètre). * + * @param pere le groupe père */ public GroupeNP(Groupe pere){ Objects.requireNonNull(pere,"On ne peut pas créer un groupe dont le père est null"); @@ -68,6 +84,8 @@ public class GroupeNP implements Groupe { /** * Ajoute un étudiant. Se comporte comme add de l'interface Set. + * + * @param e l'étudiant à ajouter * * @return true iff e est ajouté */ @@ -78,6 +96,8 @@ public class GroupeNP implements Groupe { /** * Enlève un étudiant. Se comporte comme remove de l'interface Set. + * + * @param e l'étudiant à enlever * * @return true iff e est enlevé */ @@ -89,6 +109,8 @@ public class GroupeNP implements Groupe { /** * Ajoute un sous-groupe. Se comporte comme add de l'interface Set. * vérifie que le groupe passé en argument a bien renseigné this comme son père. + * + * @param g le groupe à ajouter * * @return true iff g est ajouté */ @@ -101,6 +123,8 @@ public class GroupeNP implements Groupe { /** * Enlève un groupe. Se comporte comme remove de l'interface Set. + * + * @param g le sous-groupe à enlever * * @return true iff e est enlevé */ @@ -112,6 +136,7 @@ public class GroupeNP implements Groupe { /** * permet de récupérer l'identifiant d'un groupe (référence interne sans intérêt irl). + * * @return l'identifiant. */ public int getId(){ @@ -188,6 +213,10 @@ public class GroupeNP implements Groupe { return this.membresDuGroupe; } + /** + * permet de modifier le nom du groupe + * @param name le nouveau nom + */ @Override public void setName(String s) { this.name=s; diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractChangementFactoryNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractChangementFactoryNP.java index 3f7d35b..6788ee3 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractChangementFactoryNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractChangementFactoryNP.java @@ -22,7 +22,11 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { // On utilise une table de hachage pour retrouver facilement un changement (à partir de son id). // Si il y a beaucoup de changements c'est plus rapide que de parcourir toute une liste. private HashMap brain; - + /** + * Constructeur de l'usine à changement. + * @param agf l'usine à groupe travaillant en tandem avec cette usine. + * @param fenetre la fenetre principale + */ public AbstractChangementFactoryNP(AbstractGroupeFactory agf, JFrame fenetre){ Objects.requireNonNull(agf,"On ne peut pas créer une usine à changement dont l'usine à groupe parternaire est null"); this.agf=agf; @@ -30,7 +34,12 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { this.brain=new HashMap(); this.getChange(); } - + /** + * Constructeur de l'usine à changement. + * @param agf l'usine à groupe travaillant en tandem avec cette usine. + * @param fenetre la fenetre principale + * @param liste la liste des changements + */ public AbstractChangementFactoryNP(AbstractGroupeFactory agf, JFrame fenetre, Set liste){ Objects.requireNonNull(agf,"On ne peut pas créer une usine à changement dont l'usine à groupe parternaire est null"); this.agf=agf; @@ -66,7 +75,7 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { /** * permet de mettre en oeuvre un changement connu de l'usine abstraite. - * + * @param c le changement à mettre en oeuvre. * @throws java.lang.NullPointerException si un argument est null * @throws java.lang.IllegalStateException si le changement n'a pas de sens en l'état actuel (e.g. étudiant pas dans le groupe de départ a, groupe b inconnu, groupe a inconnu, etc). * @throws java.lang.IllegalArgumentException si inconnu de l'usine abstraite @@ -97,7 +106,7 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { /** * permet de supprimer un changement connu de l'usine abstraite. - * + * @param c le changement à supprimer. * @throws java.lang.NullPointerException si un argument est null * @throws java.lang.IllegalArgumentException si inconnu de l'usine abstraite */ @@ -222,7 +231,11 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { // FONCTION POUR SIMPLIFIER LES Modification BD // *********************** - + /** + * permet de se connecter à la base de donnée + * + * @return la connexion à la base de donnée + */ private Connection cnx(){ //On se Connecte a la BD try{ @@ -239,6 +252,13 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { return null; } + /** + * permet de détécter une erreur de connexion à la base de donnée + * + * @return true si une erreur est détéctée, false sinon + * + * + */ private boolean erreurCO(){ if(JOptionPane.showConfirmDialog(this.fenetre, "erreur connection a la BD reassayer?", "erreur connection", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ return true; @@ -247,7 +267,13 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { return false; } } - + /** + * permet de détécter une erreur SQL + * + * @return true si une erreur est détéctée, false sinon + * + * + */ private boolean erreurSQL(){ if(JOptionPane.showConfirmDialog(this.fenetre, "erreur lors de la modification, reasssayer?", "erreur SQL", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ return true; @@ -256,6 +282,12 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { } } + /** + * permet de fermer la connexion à la base de donnée + * + * @param clos outil de fermture de la connexion + * + */ private void close(AutoCloseable clos){ try{ clos.close(); @@ -265,6 +297,9 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { } } + /** + * permet de remplir la liste des changements de l'usine + */ private void getChange(){ Connection cnx=this.cnx(); try{ @@ -288,7 +323,14 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { } this.close(cnx); } - + /** + * permet de chercher les sous-groupes d'un groupe + * + * @param idA id du groupe A + * @param idB id du groupe B + * @param retour tableau de groupe dans lequel on va stocker les groupes + * @param toFind le groupe à comparer (ou groupe père pour la première itération) + */ private void getGroupe(int idA, int idB, Groupe[] retour, Groupe tofind){ if(retour[0]!=null && retour[1]!=null) return; @@ -303,6 +345,10 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { } } + /** + * pemet de arfricher la liste des changements + * + */ private void refresh(){ this.brain=new HashMap(); this.getChange(); diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractGroupeFactoryNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractGroupeFactoryNP.java index 6c17518..f895fb1 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractGroupeFactoryNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractGroupeFactoryNP.java @@ -28,6 +28,8 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { /** * Le constructeur fabrique le groupe promotion déja plein (utilisé en Modèle persistant de donné). + * @param fenetre fenetre principale + * */ public AbstractGroupeFactoryNP(JFrame fenetre){ this.fenetre=fenetre; @@ -38,6 +40,10 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { /** * Le constructeur fabrique le groupe promotion vide. * Il faut ensuite y ajouter les étudiants. + * @param fenetre fenetre principale + * @param name nom de la promotion + * @param min le nombre minimum d'étudiants dans la promotion + * @param max le nombre maximum d'étudiants dans la promotion */ public AbstractGroupeFactoryNP(String name, int min, int max, JFrame fenetre){ Objects.requireNonNull(name,"On ne peut pas créer une promotion dont le nom est null"); @@ -51,14 +57,23 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { /** * Test plutôt optimiste. Si la clé est identique alors on fait comme si c'était le bon groupe. - * + * @param g le groupe à tester * @return true si le groupe est connu */ public Boolean knows(Groupe g){ return this.brain.containsKey(Integer.valueOf(g.getId())); } - + /** + * pemet de changer le nom d'un groupe dans la base de données + * + * @param g le groupe dont on veut changer le nom + * @param name le nouveau nom + * + * @return true si le changement a été effectué, false s'il y a eu une erreur + * + * + */ public boolean changeNameGroupe(Groupe g, String name){ if(!this.knows(g)){ throw new IllegalArgumentException("Groupe inconu "); @@ -99,6 +114,8 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { * permet de supprimer un groupe connu de l'usine abstraite qui ne contient pas de groupes. * Pour détruire un groupe connu qui en contient d'autres il faut le faire récursivement. * + * @param g le groupe à supprimer + * * @throws java.lang.NullPointerException si un argument est null * @throws java.lang.IllegalStateException si le groupe contient des groupes * @throws java.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) @@ -314,7 +331,12 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { // FONCTION POUR SIMPLIFIER LES Modification BD // *********************** - + + /** + * permet de se connecter à la base de donnée + * + * @return la connexion à la base de donnée + */ private Connection cnx(){ //On se Connecte a la BD try{ @@ -331,7 +353,13 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { } return null; } - + /** + * permet de détécter une erreur de connexion à la base de donnée + * + * @return true si une erreur est détéctée, false sinon + * + * + */ private boolean erreurCO(){ if(JOptionPane.showConfirmDialog(this.fenetre, "erreur connection a la BD reassayer?", "erreur connection", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ return true; @@ -340,7 +368,13 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { return false; } } - + /** + * permet de détécter une erreur SQL + * + * @return true si une erreur est détéctée, false sinon + * + * + */ private boolean erreurSQL(){ if(JOptionPane.showConfirmDialog(this.fenetre, "erreur lors de la modification, reasssayer?", "erreur SQL", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ return true; @@ -348,7 +382,11 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { return false; } } - + /** + * permet de supprimer un étudiant de la base de donnée + * @param et l'étudiant à supprimer + * @param g le groupe dans lequel il est + */ private void deleteEtu(Etudiant et, Groupe g){ Connection cnx=this.cnx(); try{ @@ -366,7 +404,12 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { } this.close(cnx); } - + /** + * permet de supprimer un étudiant de la base de donnée + * @param pst la requete préparée + * @param cnx la connexion à la base de donnée + * @param id le groupe parent + */ private void deleteEtu(PreparedStatement pst, Connection cnx, int id){ try{ pst.setInt(1, id); @@ -387,7 +430,12 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { } } } - + /** + * permet de fermer la connexion à la base de donnée + * + * @param clos outil de fermture de la connexion + * + */ private void close(AutoCloseable clos){ try{ clos.close(); @@ -398,7 +446,12 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { } } - +/** + * permet d'ajouter un groupe de la base de donnée + * @param etudiant l'étudiant à ajouter + * @param g le groupe de l'étudiant + * @return true s'il n'y a pas eu d'erreur, false sinon + */ private boolean saveEtu(Etudiant etudiant, Groupe g){ Connection cnx = this.cnx(); try{ @@ -436,7 +489,11 @@ private boolean saveEtu(Etudiant etudiant, Groupe g){ this.close(cnx); return true; } - + /** + * permet d'ajouter un groupe dans la base de donnée + * @param g le groupe à ajouter + * @return true s'il n'y a pas eu d'erreur, false sinon + */ private boolean saveGroupe(Groupe g){ Connection cnx=this.cnx(); try{ @@ -468,7 +525,11 @@ private boolean saveEtu(Etudiant etudiant, Groupe g){ this.close(cnx); return true; } - + /** + * permet de supprimer un groupe de la base de donnée + * @param g le groupe à supprimer + * @return true s'il n'y a pas eu d'erreur, false sinon + */ private boolean suprGroupe(Groupe g){ Connection cnx=this.cnx(); try{ @@ -498,6 +559,9 @@ private boolean saveEtu(Etudiant etudiant, Groupe g){ * FONCTION POUR INITIALISER LA FACTORY AVEC LA BD * ******************************** */ + /** + * permet de charger les groupes de la base de donnée + */ private void init(){ Connection cnx=this.cnx(); //on récupère le Groupe de la BD n'ayant pas de Parent (La promo donc) @@ -536,7 +600,6 @@ private boolean saveEtu(Etudiant etudiant, Groupe g){ * Fonction recursive permettant de récuperrer les sous groupe a partir de la BD * @param g le groupe * @param cnx la connection a la BD (evite de la surcharger) - * @param pourcent le pourcentage de ce groupe dans le chargement */ private void addSousGroupe(Groupe g, Connection cnx){ try{ @@ -618,6 +681,7 @@ private boolean saveEtu(Etudiant etudiant, Groupe g){ * Refresh le groupe donnée pour le mettre a jour avec la Base de donnée * Si le groupe n'existe plus on retourne le groupe parent le plus proche existant encore * @param g le groupe a refresh + * @param cnx la connection a la BD (evite de la surcharger) * @return le groupe refresh */ private Groupe refreshGroupe(Groupe g, Connection cnx){ diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ChangementNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ChangementNP.java index 6f01afe..74f42e9 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ChangementNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ChangementNP.java @@ -12,11 +12,21 @@ public class ChangementNP implements Changement { //auto-incrément des changements private static int nextId=0; - private String raison; + // id du changement private int id; + // groupe d'origine et d'arrivée private Groupe a,b; + // étudiant concerné private Etudiant e; - + // raison de la demande + private String raison; + /** + * Constructeur d'un changement. + * @param a le groupe de départ + * @param b le groupe d'arrivée + * @param e l'étudiant demandant le changement + * @param raison la raison du changement + */ public ChangementNP(Groupe a, Etudiant e, Groupe b){ Objects.requireNonNull(a,"On ne peut pas créer un changement avec un groupe à quitter null"); Objects.requireNonNull(b,"On ne peut pas créer un changement avec un groupe à rejoindre null"); @@ -27,7 +37,14 @@ public class ChangementNP implements Changement { this.b=b; this.e=e; } - + /** + * Constructeur d'un changement. + * @param a le groupe de départ + * @param b le groupe d'arrivée + * @param e l'étudiant demandant le changement + * @param raison la raison du changement + * + */ public ChangementNP(Groupe a, Etudiant e, Groupe b, String raison){ Objects.requireNonNull(a,"On ne peut pas créer un changement avec un groupe à quitter null"); Objects.requireNonNull(b,"On ne peut pas créer un changement avec un groupe à rejoindre null"); @@ -38,7 +55,14 @@ public class ChangementNP implements Changement { this.b=b; this.e=e; } - + /** + * Constructeur d'un changement. + * @param a le groupe de départ + * @param b le groupe d'arrivée + * @param e l'étudiant demandant le changement + * @param id l'id du changement + * + */ public ChangementNP(Groupe a, Etudiant e, Groupe b, int id){ Objects.requireNonNull(a,"On ne peut pas créer un changement avec un groupe à quitter null"); Objects.requireNonNull(b,"On ne peut pas créer un changement avec un groupe à rejoindre null"); @@ -52,7 +76,15 @@ public class ChangementNP implements Changement { this.nextId=this.id; } } - + /** + * Constructeur d'un changement. + * @param a le groupe de départ + * @param b le groupe d'arrivée + * @param e l'étudiant demandant le changement + * @param id l'id du changement + * @param raison la raison du changement + * + */ public ChangementNP(Groupe a, Etudiant e, Groupe b, int id, String raison){ Objects.requireNonNull(a,"On ne peut pas créer un changement avec un groupe à quitter null"); Objects.requireNonNull(b,"On ne peut pas créer un changement avec un groupe à rejoindre null"); @@ -97,7 +129,10 @@ public class ChangementNP implements Changement { public Etudiant getEtu(){ return this.e; } - + /** + * permet de récupérer la raison du changement + * @return la raison du changement + */ @Override public String getRaison() { return this.raison; diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/EtudiantNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/EtudiantNP.java index eb64684..b7d13f1 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/EtudiantNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/EtudiantNP.java @@ -7,13 +7,19 @@ import java.util.*; public class EtudiantNP implements Etudiant{ + // auto-incrément des étudiants private static int nextId=0; + // id de l'étudiant private int id; + // nom et prénom de l'étudiant private String nom, prenom; /** - * Constructeur. - */ + * Constructeur d'un étudiant. + * @param nom le nom de l'étudiant + * @param prenom le prénom de l'étudiant + * + */ public EtudiantNP(String nom, String prenom){ Objects.requireNonNull(nom,"On ne peut pas créer un étudiant avec un nom null"); Objects.requireNonNull(prenom,"On ne peut pas créer un étudiant avec un nom null"); @@ -24,8 +30,11 @@ public class EtudiantNP implements Etudiant{ } /** - * Constructeur pour MPN - */ + * Constructeur d'un étudiant. + * @param nom le nom de l'étudiant + * @param prenom le prénom de l'étudiant + * @param id l'id de l'étudiant + */ public EtudiantNP(String nom, String prenom, int id){ Objects.requireNonNull(nom,"On ne peut pas créer un étudiant avec un nom null"); Objects.requireNonNull(prenom,"On ne peut pas créer un étudiant avec un nom null"); diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/GroupeNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/GroupeNP.java index b457f0f..ac11a0c 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/GroupeNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/GroupeNP.java @@ -11,16 +11,25 @@ public class GroupeNP implements Groupe { private static int nextId=0; // attributs naturels induits par getter de l'interface Groupe private int id; + // nom du groupe private String name; + // bornes limitatives du groupe private int min,max; - private TypeGroupe type; + // type de groupe + private TypeGroupe type; + // groupe père private Groupe pointPoint; // On utilise une interface set pour les sous-groupes et pour les membres (ce sont bien des ensembles en pratique). private Set sousGroupes; + // Liste des étudiants du groupe private Set membresDuGroupe; /** * Nouveau groupe vide de type ROOT sans étudiants, sans sous-Groupe + * + * @param name le nom du groupe + * @param min le nombre minimum d'étudiants + * @param max le nombre maximum d'étudiants */ public GroupeNP(String name, int min, int max){ Objects.requireNonNull(name,"On ne peut pas créer un groupe dont le nom est null"); @@ -33,9 +42,17 @@ public class GroupeNP implements Groupe { this.sousGroupes=new LinkedHashSet(); this.membresDuGroupe=new LinkedHashSet(); } - /** - * Nouveau groupe complet (pour le modèle persisant de donnée) + * Nouveau groupe vide de type FREE sans étudiants, sans sous-Groupe + * + * @param name le nom du groupe + * @param min le nombre minimum d'étudiants + * @param max le nombre maximum d'étudiants + * @param pere le groupe père + * @param id l'id du groupe + * @param type le type du groupe + * + * */ public GroupeNP(int id, String name, int min, int max, TypeGroupe type, Groupe pere){ Objects.requireNonNull(name,"On ne peut pas créer un groupe dont le nom est null"); @@ -55,9 +72,15 @@ public class GroupeNP implements Groupe { this.sousGroupes=new LinkedHashSet(); this.membresDuGroupe=new LinkedHashSet(); } - + /** * Nouveau groupe vide de type FREE sans étudiants, sans sous-Groupe + * + * @param name le nom du groupe + * @param min le nombre minimum d'étudiants + * @param max le nombre maximum d'étudiants + * @param pere le groupe père + * */ public GroupeNP(Groupe pere, String name, int min, int max){ Objects.requireNonNull(pere,"On ne peut pas créer un groupe dont le père est null"); @@ -75,6 +98,7 @@ public class GroupeNP implements Groupe { /** * Nouveau groupe de type PARTITION dupliquant le groupe passé en paramètre (pour servir de racine à une partition de ce groupe de type FREE passé en paramètre). * + * @param pere le groupe père */ public GroupeNP(Groupe pere){ Objects.requireNonNull(pere,"On ne peut pas créer un groupe dont le père est null"); @@ -90,6 +114,8 @@ public class GroupeNP implements Groupe { /** * Ajoute un étudiant. Se comporte comme add de l'interface Set. + * + * @param e l'étudiant à ajouter * * @return true iff e est ajouté */ @@ -100,6 +126,8 @@ public class GroupeNP implements Groupe { /** * Enlève un étudiant. Se comporte comme remove de l'interface Set. + * + * @param e l'étudiant à enlever * * @return true iff e est enlevé */ @@ -111,6 +139,8 @@ public class GroupeNP implements Groupe { /** * Ajoute un sous-groupe. Se comporte comme add de l'interface Set. * vérifie que le groupe passé en argument a bien renseigné this comme son père. + * + * @param g le groupe à ajouter * * @return true iff g est ajouté */ @@ -120,9 +150,11 @@ public class GroupeNP implements Groupe { return this.sousGroupes.add(g); else throw new IllegalArgumentException("on ne peut pas ajouter un sous-groupe ont le père n'est pas this"); } - + /** * Enlève un groupe. Se comporte comme remove de l'interface Set. + * + * @param g le sous-groupe à enlever * * @return true iff e est enlevé */