diff --git a/Implementation/src/ChatApp.class b/Implementation/src/ChatApp.class index 19b6010..02dee82 100644 Binary files a/Implementation/src/ChatApp.class and b/Implementation/src/ChatApp.class differ diff --git a/Implementation/src/ChatApp.java b/Implementation/src/ChatApp.java index b6dbb73..af99313 100644 --- a/Implementation/src/ChatApp.java +++ b/Implementation/src/ChatApp.java @@ -14,7 +14,7 @@ import java.util.concurrent.Executors; public class ChatApp { /* Liste des utilisateurs actifs */ - private ArrayList actifUsers ; + private ListUtilisateurs actifUsers ; /* ChatApp est associé à un utilisateur */ private Utilisateur me; @@ -26,7 +26,7 @@ public class ChatApp { * @param port Port de communication */ public ChatApp(String pseudo, Integer port){ - this.actifUsers = new ArrayList() ; + this.actifUsers = new ListUtilisateurs() ; // Recuperer adresse IP de l'utilisateur InetAddress ip = null ; try { @@ -36,78 +36,10 @@ public class ChatApp { } //ip.getHostAddress(); this.me = new Utilisateur(pseudo,port,ip); - this.actifUsers.add(getMe()); - } - /** - * Ajouter des utilisateurs actifs dans l'attribut liste 'actifUsers' - * - * @param u on va rajouter cet utilisateur dans la liste - */ - public void addList(Utilisateur u) { - this.actifUsers.add(u); - } - public Utilisateur getPseudoList(String pseudo) { - for(Utilisateur elem: this.actifUsers) - { - if (elem.getPseudo().equals(pseudo) ) { - return elem ; - } - } - return null ; - } - /** - * Supprimer de la liste des utilisateurs actifs 'actifUsers' un certain utilisateur - * - * @param u on va supprimer cet utilisateur dans la liste - */ - public void supprimerList(Utilisateur u) { - Boolean Sup = false ; - for(Utilisateur elem: this.actifUsers) - { - if (elem.equals(u) ) { - this.actifUsers.remove(elem); - Sup = true ; - this.afficherListeUtilisateurs(); - } - } - if (!Sup) { - System.out.println("Tentative de retirer un objet non contenu dans la liste"); - } + this.actifUsers.addList(getMe()); } - /** - * Modifie le nom d'un utilisateur dans la liste des utilisateurs actifs 'actifUsers' - * - * @param ancien correspond au pseudo remplacer - * @param nouveau correspond au nouveau pseudo - */ - public void modifierList(String ancien , String nouveau) { - for(Utilisateur elem: this.actifUsers) - { - if (ancien.equals( elem.getPseudo() ) ) { - this.actifUsers.remove(elem); - elem.setPseudo(nouveau);; - this.addList(elem); - - } - } - this.afficherListeUtilisateurs(); - } - - /** - * Verifie qu'aucun autre utilisateur ne possède le même pseudo - * - * @param u on va supprimer cet utilisateur dans la liste - */ - public Boolean verifierUnicite(String pseudo) { - for(Utilisateur elem: this.actifUsers) - { - if (pseudo.equals( elem.getPseudo() ) ) { - return false ; - } - } - return true; - } + /** * Modification du pseudo de l'utilisateur @@ -124,13 +56,6 @@ public class ChatApp { UDPEchange.connexion(broadcastAdress,broadcastMessage, port); } - public void afficherListeUtilisateurs() { - System.out.println ("Liste des utilisateurs actifs : "); - for(Utilisateur elem: this.actifUsers) - { - System.out.println (elem.toString()); - } - } /** * Methode appelée lors de la connexion d'un nouvel utilisateur. @@ -195,7 +120,10 @@ public class ChatApp { public Utilisateur getMe() { return me; } - + + public ListUtilisateurs getActifUsers() { + return actifUsers; + } } class Runner implements Runnable { ChatApp app ; diff --git a/Implementation/src/ListUtilisateurs.class b/Implementation/src/ListUtilisateurs.class new file mode 100644 index 0000000..1e90913 Binary files /dev/null and b/Implementation/src/ListUtilisateurs.class differ diff --git a/Implementation/src/ListUtilisateurs.java b/Implementation/src/ListUtilisateurs.java new file mode 100644 index 0000000..1a07621 --- /dev/null +++ b/Implementation/src/ListUtilisateurs.java @@ -0,0 +1,101 @@ +import java.util.ArrayList; + +public class ListUtilisateurs { + + private ArrayList actifUsers ; + + public ListUtilisateurs() { + this.actifUsers = new ArrayList() ; + } + /** + * Ajouter des utilisateurs actifs dans l'attribut liste 'actifUsers' + * + * @param u on va rajouter cet utilisateur dans la liste + */ + public void addList(Utilisateur u) { + this.actifUsers.add(u); + } + + /** + * Recuperer un utilisateur à partir de son pseudo + * + * @param pseudo Pseudo de l'utilisateur que l'on souhaite retrouver + */ + public Utilisateur getPseudoList(String pseudo) { + for(Utilisateur elem: this.actifUsers) + { + if (elem.getPseudo().equals(pseudo) ) { + return elem ; + } + } + return null ; + } + + /** + * Supprimer de la liste des utilisateurs actifs 'actifUsers' un certain utilisateur + * + * @param u on va supprimer cet utilisateur dans la liste + */ + public void supprimerList(Utilisateur u) { + Boolean Sup = false ; + for(Utilisateur elem: this.actifUsers) + { + if (elem.equals(u) ) { + this.actifUsers.remove(elem); + Sup = true ; + this.afficherListeUtilisateurs(); + } + } + if (!Sup) { + System.out.println("Tentative de retirer un objet non contenu dans la liste"); + } + } + + /** + * Modifie le nom d'un utilisateur dans la liste des utilisateurs actifs 'actifUsers' + * + * @param ancien correspond au pseudo remplacer + * @param nouveau correspond au nouveau pseudo + */ + public void modifierList(String ancien , String nouveau) { + for(Utilisateur elem: this.actifUsers) + { + if (ancien.equals( elem.getPseudo() ) ) { + this.actifUsers.remove(elem); + elem.setPseudo(nouveau);; + this.addList(elem); + + } + } + this.afficherListeUtilisateurs(); + } + + + + /** + * Verifie qu'aucun autre utilisateur ne possède le même pseudo + * + * @param u on va supprimer cet utilisateur dans la liste + */ + public Boolean verifierUnicite(String pseudo) { + for(Utilisateur elem: this.actifUsers) + { + if (pseudo.equals( elem.getPseudo() ) ) { + return false ; + } + } + return true; + } + + /** + * Méthode affichant la liste des utilisateurs actifs + * + */ + public void afficherListeUtilisateurs() { + System.out.println ("Liste des utilisateurs actifs : "); + for(Utilisateur elem: this.actifUsers) + { + System.out.println (elem.toString()); + } + } +} diff --git a/Implementation/src/Runner.class b/Implementation/src/Runner.class index a7108d5..1de11c3 100644 Binary files a/Implementation/src/Runner.class and b/Implementation/src/Runner.class differ diff --git a/Implementation/src/RunnerUDP.class b/Implementation/src/RunnerUDP.class index 87f0a36..5a2c750 100644 Binary files a/Implementation/src/RunnerUDP.class and b/Implementation/src/RunnerUDP.class differ diff --git a/Implementation/src/UDPEchange.java b/Implementation/src/UDPEchange.java index f572c76..d9fad55 100644 --- a/Implementation/src/UDPEchange.java +++ b/Implementation/src/UDPEchange.java @@ -110,13 +110,13 @@ class RunnerUDP implements Runnable { System.out.println("Reception d'une demande de connexion"); Utilisateur u = Utilisateur.stringToUtilisateur(received.split("\n")[1]); String reponse = "Reponse Connexion\n"; - if (!app.verifierUnicite(u.getPseudo())) { + if (!( app.getActifUsers() ).verifierUnicite(u.getPseudo())) { System.out.println("Pseudo deja present dans la liste"); reponse += "false\n"; } else { System.out.println("Ajout d'un nouvel utilisateur dans la liste des Utilisateurs"); - app.addList(u); + ( app.getActifUsers() ).addList(u); reponse += "true\n"; } @@ -128,15 +128,15 @@ class RunnerUDP implements Runnable { System.out.println("Echec de l'envoi du message"); } - app.afficherListeUtilisateurs(); + ( app.getActifUsers() ).afficherListeUtilisateurs(); } if (Type.equals("Reponse Connexion")) { // Un utilisateur te repond suite à ta demande de connexion - app.afficherListeUtilisateurs(); + ( app.getActifUsers() ).afficherListeUtilisateurs(); } if (Type.equals("Modification Pseudo")) { - if(app.verifierUnicite(received.split("\n")[2])) { - app.modifierList(received.split("\n")[1],received.split("\n")[2]); - Utilisateur Destination = app.getPseudoList(received.split("\n")[1]); + if(( app.getActifUsers() ).verifierUnicite(received.split("\n")[2])) { + ( app.getActifUsers() ).modifierList(received.split("\n")[1],received.split("\n")[2]); + Utilisateur Destination = ( app.getActifUsers() ).getPseudoList(received.split("\n")[1]); String Message = "Bon Choix Pseudo\n" + received.split("\n")[2] ; try { UDPEchange.envoiUnicast(Destination.getIp(),Message, 1234); @@ -145,7 +145,7 @@ class RunnerUDP implements Runnable { } } else { - Utilisateur Destination = app.getPseudoList(received.split("\n")[1]); + Utilisateur Destination = ( app.getActifUsers() ).getPseudoList(received.split("\n")[1]); String Message = "Mauvais Choix Pseudo\n" ; try { UDPEchange.envoiUnicast(Destination.getIp(),Message, 1234); @@ -153,18 +153,18 @@ class RunnerUDP implements Runnable { e.printStackTrace(); } } - app.afficherListeUtilisateurs(); + ( app.getActifUsers() ).afficherListeUtilisateurs(); } if (Type.equals("Mauvais Choix Pseudo")) { System.out.println("Ce choix de pseudo est déjà pris il te faut en choisir un autre"); } if (Type.equals("Bon Choix Pseudo")) { - app.supprimerList(app.getMe()); - app.getMe().setPseudo(received.split("\n")[1]); - app.addList(app.getMe()); + ( app.getActifUsers() ).supprimerList(app.getMe()); + app.getMe().setPseudo(received.split("\n")[1]); + ( app.getActifUsers() ).addList(app.getMe()); } if (Type.equals("Deconnexion")) { - app.supprimerList(Utilisateur.stringToUtilisateur(received.split("\n")[1])); + ( app.getActifUsers() ).supprimerList(Utilisateur.stringToUtilisateur(received.split("\n")[1])); } } }