suite changement et correction bug

This commit is contained in:
martins 2022-11-29 15:34:17 +01:00
parent 1351345df5
commit 86b93e43d5
3 changed files with 56 additions and 6 deletions

View File

@ -390,6 +390,7 @@ public void showGroupe(Groupe g){
} }
public Set<Groupe> getGroupePartition(){ public Set<Groupe> getGroupePartition(){
this.bd.refreshGroupe(this.fenGr.getG().getPointPoint());
Set<Groupe> retour=new HashSet<>(); Set<Groupe> retour=new HashSet<>();
if(this.fenGr.getG().getPointPoint().getType()!=TypeGroupe.PARTITION) if(this.fenGr.getG().getPointPoint().getType()!=TypeGroupe.PARTITION)
throw new IllegalStateException("impossible de changer un étudiant d'un groupe ne provenant pas d'une partition"); throw new IllegalStateException("impossible de changer un étudiant d'un groupe ne provenant pas d'une partition");

View File

@ -30,6 +30,16 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory {
this.brain=new HashMap<Integer,Changement>(); this.brain=new HashMap<Integer,Changement>();
} }
public AbstractChangementFactoryNP(AbstractGroupeFactory agf, JFrame fenetre, Set<Changement> liste){
Objects.requireNonNull(agf,"On ne peut pas créer une usine à changement dont l'usine à groupe parternaire est null");
this.agf=agf;
this.fenetre=fenetre;
this.brain=new HashMap<Integer,Changement>();
for(Changement ch:liste){
this.brain.put(ch.getId(), ch);
}
}
/** /**
* permet de récupérer l'usine abstraite pour les groupes qui fonctionne en tandem avec cette usine abstraite * permet de récupérer l'usine abstraite pour les groupes qui fonctionne en tandem avec cette usine abstraite
@ -85,9 +95,22 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory {
*/ */
public void deleteChangement(Changement c){ public void deleteChangement(Changement c){
Objects.requireNonNull(c,"On ne peut pas demander la suppression d'un changement qui est null"); Objects.requireNonNull(c,"On ne peut pas demander la suppression d'un changement qui est null");
Connection cnx=this.cnx();
this.brain.remove(Integer.valueOf(c.getId())); try{
PreparedStatement pst=cnx.prepareStatement("DELETE FROM `Changement` where `id`=?");
pst.setInt(1, c.getId());
pst.executeUpdate();
pst.close();
}catch(SQLException er){
System.out.println(er.toString());
if(this.erreurSQL()){
this.deleteChangement(c);
}else{
return;
}
}
this.close(cnx);
this.brain.remove(c.getId());
} }
/** /**
@ -109,13 +132,25 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory {
this.brain.put(Integer.valueOf(c.getId()),c); this.brain.put(Integer.valueOf(c.getId()),c);
Connection cnx=this.cnx(); Connection cnx=this.cnx();
try{ try{
PreparedStatement pst=cnx.prepareStatement("INSERT INTO `Changement` (`idGroupeA`, `idGroupeB`, `idEtudiant`) VALUES (?, ?, ?);"); PreparedStatement pst=cnx.prepareStatement("SELECT * FROM `Changement` where `idGroupeA`=? AND `idGroupeB`=? AND `idEtudiant`=?; ");
pst.setInt(1, A.getId()); pst.setInt(1, A.getId());
pst.setInt(2, B.getId()); pst.setInt(2, B.getId());
pst.setInt(3, e.getId()); pst.setInt(3, e.getId());
pst.executeUpdate(); if(!pst.executeQuery().next()){
pst.close(); pst.close();
pst=cnx.prepareStatement("INSERT INTO `Changement` (`idGroupeA`, `idGroupeB`, `idEtudiant`, `id`) VALUES (?, ?, ?, ?);");
pst.setInt(1, A.getId());
pst.setInt(2, B.getId());
pst.setInt(3, e.getId());
pst.setInt(4, c.getId());
pst.executeUpdate();
pst.close();
}else{
pst.close();
JOptionPane.showMessageDialog(this.fenetre, "Vous Avez deja demander a Chnager dans ce Groupe", "erreur", JOptionPane.ERROR_MESSAGE);
}
}catch(SQLException er){ }catch(SQLException er){
System.out.println(er.toString());
if(this.erreurSQL()){ if(this.erreurSQL()){
this.createChangement(A, e, B); this.createChangement(A, e, B);
}else{ }else{

View File

@ -28,6 +28,20 @@ public class ChangementNP implements Changement {
this.e=e; this.e=e;
} }
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");
Objects.requireNonNull(e,"On ne peut pas créer un changement concernant un étudiant null");
this.id=id;
this.a=a;
this.b=b;
this.e=e;
if(this.id>this.nextId){
this.nextId=this.id;
}
}
/** /**
* permet de récupérer l'identifiant du changement (référence interne sans intérêt irl). * permet de récupérer l'identifiant du changement (référence interne sans intérêt irl).
* @return l'identifiant. * @return l'identifiant.