From e419412d8fbae442c041a66083ec0217c2b1566b Mon Sep 17 00:00:00 2001 From: alartigu Date: Mon, 30 Nov 2020 18:16:26 +0100 Subject: [PATCH] Ajout class ListUtilisateurs --- Implementation/src/ChatApp.class | Bin 4607 -> 3083 bytes Implementation/src/ChatApp.java | 88 ++----------------- Implementation/src/ListUtilisateurs.class | Bin 0 -> 2103 bytes Implementation/src/ListUtilisateurs.java | 101 ++++++++++++++++++++++ Implementation/src/Runner.class | Bin 579 -> 579 bytes Implementation/src/RunnerUDP.class | Bin 3486 -> 3593 bytes Implementation/src/UDPEchange.java | 26 +++--- 7 files changed, 122 insertions(+), 93 deletions(-) create mode 100644 Implementation/src/ListUtilisateurs.class create mode 100644 Implementation/src/ListUtilisateurs.java diff --git a/Implementation/src/ChatApp.class b/Implementation/src/ChatApp.class index 19b60108fdafaa091b3ce3e72067f38132b877b3..02dee825bb0d4d19fb9da85b7934f761efc6bb4f 100644 GIT binary patch delta 1466 zcmah}TT@$A6#jNN1`T2}F|Sh#84Sk|EPrNF>*WJZ^Vjr*`v3tB_HpT&dU5Ag?LKnudM2 zU&j$N$`xCc<|bvcjt9^pH1e})0F7kGfWwRrn~6v)?1n(M73qY)eezew zUiq8i%6G$tZVi4st|NdxS!F+L@7Ixw0Xbmz9T~Dn?J7F;E*tE{`ltiX3*>f2BXLuH>8LGI@v^|4 zzq_1ml)RaD{P-Iz_*7u0sZC&4*f86t%*f10(nur)3TtZr@#^xYyr$h!!&`V;#XDBd zZ%U8$jd)M~q8)I5AmHqXvpdUH2ZaM4%5rCgSeNb2I^|P=gYvpoEMuA~uR6;rzz3>C z6~{#71M*!cU*PQ)?7VRv<#$eh{wB39>_rKRh`%gLbkC|EHF%MTQrNa>P*gZoyrjaf z5-L;_+3Cb)(ZM3@MNWpWG7WEET?*AH_&i%^0)j5(`!tRoQ@r)1N*c#Ei59p_S(Nc; zhJqHjaTH}7qzbOcE3~aD1P$}Y0s1pUH$x~il`}*j8=_+iT|i$pLeS%_{}=uaI(0JV zE>_WvgE*1l|BL?B|Da#ZltBKT|KlGd|1kMal7EE!qxbOV;WfOTO<$C;S}XndT{y?< zavJND#x#1_nL7vuJShx*0Y{%Vg%MZIk7=xq_IdB(^tk5^&VGfE4P%6`so@mnT>0zk z@Dw7R##3|()~B%IaX+2HvpaQ{sM}=Q3YptJX4%Cp?Z*;VZ4y&F`Pj@Thyuz9qRtRE zN#t3q?#DSCLI{VsYApnJan%BtrTYx0D9myrbeSVOMr#z)+_hQ6d0WcNO+D0YGTBsI z;pkWsGpuZ*0XbQPN?Picl%OSY@97!8FAT~hw8rWHCqVGbt-Fmw8~l@<9BcM~70Ro4 slX53i+X=nMCS0S74cD>8vyk^2bbL1>-_OWf_=pyb+K=&xg3nO;2lt;JLjV8( literal 4607 zcmai2`F|AU9eyTRGMmkCBm^WNupmNC13?56ieN${Gzlp=5Uj^!_azzForyEE0laEG zdRpqyR_sE8_< z?+ImGBh|Rgw)G>OhU3PdqPP@g&{WLUFb8uLsI9}gyKQ7dK}=7$#{Pas*p7k)odxt; zVkk$2iuoEUu|PqkCu0h?v4f9o$)qhD>S{y6?X(hlYKP@8wnf!7zOfmCEh?^1uyo2s zzj@HK4w+JE`{9HbaSh9iVIitCES71{9kC75?RE9U!9H702o+ZO>YeR?SMy3`zM39WRPt{4(_urxEUngI#Y3Joi9m4c$QP%yhQ&YUq>wRi*FWZzP6=Ek{L!O6inh0DDy2tYI(qU^i}BW;|iBDa}kg zshdtbrN`OUE(5#`x2w2AgO0)6ROdS&g5G4Lh-F@j1+}Ufkflv(5Yj@alPj&veMrMF z3|e4=%Cwo>41lRzj)NLfa^Nex$+kuYIfKEtSCFDi4Hn2CSETiWqSZ1Jy1U14hxy5I zb<-s!Yznvj<>Q!(G&G^XQVcd66|U@`OkV#4BP_e7BishL(T?E|4y!n#;V#@wcI$8J z*`63CX>wLei8V)o1T)PPGfCj`SVAi~Cp806+^Zn&wG1ok#O1gKeB{JEMs?!Naanhbp#x>%$mHSNdQ|v;?J?8DM+H z&Dg>tsIO}H8cuMMBz0Q0SC4Q3a~&g#H>Tl5yd>$~bUkMBn7U&YM~VN`H)D7euc`Q^ zhLbpz$2UH1Jan9t5S+M3^-g)-zn;V1<4x(xwlgEHNQTOF8dXtbsj`!-D+@fK;hbcI zIcY0t>^Fq%Gkz2oXn%Xku$V(>uQ6omGD#xow~B|s)Rkg$9vyFKq5W1XDUZWW!xY__ z^q{c&B!oOdy`#HJAIW{6I%It2SrJBliV^y!=ZVH=JDCxZUD_vURz4TIZ(>aW6QKsr z869AFqr&!*?l+ADPhACtbi)M<&MO8Hn?jW>U6vFfGKr*hgPgLk`j$d&RlLDrDzHVH zy;jCfh;~CFr3Kx5jqF|4pRQfUwe^uM;SO6#XKo4Jis3i-t%~1C{`h^a&Asv)=BRa0 zH2TT5dTiWIBC_lw3Z4oB6bSl8cj#s^C7e~AmUS>Q622=1sD%>BQ|vo3A_|Cyv&`Lf zE;rGtr&7IypNHfhc~k82I+4c*nK|yaV@%;Iia!%+=HiofOo`&JY=*XJ=wk|D>yX6I zn$jId@XYwTf~&pZ52I2jSrz}to1eV&0$j)tJ~CLr(JA7X7V*U!G&%fR-nVb_JMWA9 ztZ|Ke%cs1*KZ_E61Db2cq10Z0x_2Cbdze%1)!d;+8CKJv9}Y5As$z+D3R=31}OG+s+$u zJGNp6S30nhuifbM!kvf6zcE`y8zXLF#B&((5AmY_r$>U2+h<0*J``=846oTks%kpg zst99D)XKg6W0RNI7Q3gTT!|s$1Jj5Az*h`I6@IL0T;O}wf6nS9^GP{XhC8*1pS*M@bedlQaU4CNSob&=|9i`Hv zoXy8Lt&d|Fp2$nPRLyQ&({|i}9Ij=ec%@pj9%oB`jh)r)n2Yvy<;Yg6}?EbYnilIzg!y zDfbOZzQoRd8F9Qqx_cGZ;WcWWr0(m~K7}4?_TdbzWNGIdEsZ0I33A?fnB=gFwAKK1 zl7@;@{DS-_Y4K=elFiG%xX1;S49>OFk#6~z6+(=+b~^Q0ektD-8k@!bip#O^n^m?U p$O6UqCEttiE4<0~N`C(}cmCi#|KvUYg15O7 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 0000000000000000000000000000000000000000..1e909132811e9668d1dbf3bcacb21e362a6c5501 GIT binary patch literal 2103 zcmZuxZBr9h6n-v5Hwg;@3T?E?f>c97z}H#{DqzKG0kMHl>5DGO1=l9Kc3+tKANmLA z_YPler;UA?>GZQR{Ry4vO#g*rOP`x;$i`tZb93+AbI$Xe=bU?9{`c$e0Ip&yi4JsX zi0L?l!veie%x!bBV%l4i_cor$k}q(0+OjSGxU8cqvzMbb=S1n=rNgR=sOE$J_NGAKI&?cN37wd^fs zJBEygtd4P&a76!x0ri((1!l!dVgi#I&gnRh3j%$uLd`i&MVdDGZ=01s-rH0ntcNPp znT8ew8^I-obXi~|y%6D?KiGT%S9H9u1k*PfC`ARKq@U7}SBww4vg&N}steb2Tvtt$ zGB-D^(qrkW`pXE4m%t2WHO%R_i4WSdeMZwNm3IQ_A9jZ2OfFL;pHfJ(nvY{%;L3`$ zebcwLrBRlKD}BqAt`XRV!+!M*+p&$3WBbw$jIwEaM#VJPe?AF*h&vkY>i7r?%^q$C zpn^{oT!mV;^;}r1v7!=iNyj}EA>lPkt8%}u<6{&UfgP*TW^!)`T#RE?z^H3N>Yfoq zUWQSB7oIU?D2O#3pQ!GM`%be95(R6^HvPbr0;7=z-+zG9ZRNb4XVczv%CtVRVA*mh zsBTDi#oVayrhC6B8%&3z@2i<>TR8d@e6#fBqWQEL!wa5LtZJjk?2oEbwl=Ni@$3O1 zBagTVQY5`?>DC=rZL7p*EO3zTLG8(DQg8ydBENsrTsf8a z|A40sth0xO8hTtm<;^*CatHKgUO;4igZAJB5y<&(nPJ-5~c<6nG z5fw@@^CObk8hY1Serm)rE&k_Ak0MOpx&fGVUQ| z6C0sU--MLs-(-6+!Zxeujn&ErYd+bWVT;HqgBDIDq)>hTuII%{-rd0vyS&!#RBWN zLb-~RX{{Z4qyf$G8bUuIv}(umO8ph8A5vJzhNV2tO{0{HG@%Sd8tv}=)5^cmKo6 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 a7108d5ab347dca014639192d1f2fd5cf95a1938..1de11c3800bbde3466fb5c442691571f184b9570 100644 GIT binary patch delta 50 zcmX@ia+qbqJx0zZ1{Q{922O^S$`~Uy| delta 50 zcmX@ia+qbqJx0z`3@i+%88{ivOn%PjAakBUnBfA06vHJ3Ed~Y#W(Gzn21W*LAd`tf F2LNya3akJC diff --git a/Implementation/src/RunnerUDP.class b/Implementation/src/RunnerUDP.class index 87f0a36da259c70a2b0d5cd89d292ac0ed26edf7..5a2c750cd237a86783a72cc57cd690f176311919 100644 GIT binary patch delta 1507 zcmZ`&?Nd~B6n@U`-Fx@tg0LF0zQER`Q9wF2gYjZBgkU1Lq>>d9EwI26?b7Z-n8AYP z3t}q#P=QPX&CQGmvJKHFlip`)YU)cL>ZAPueepxk*}F@OFU{OJ_jjM?ob!9mx#yf& z-o3*7{p{2Zl2H;6{1MNCKXR%GeIe6a0c?5n+b9Cu0VcGz+G4FclrE;C20?r zl(_wY@_@U^?RN%TEk1v)85^)gMF~p9jBZtm17!-HR_ z@toMCPp1mu*Qd#qDqcX97}gh(Q{2?&8y%=oQ45z?E8TCYG@}p=D%@xkyQGwqCKWHE zlwb^aw+DP~PrVg7cq1uT_v4~Vw^(!-ETU32ifJiH_NnkAAbyt~l3P{0iZ-Db9<;oM zJqlh|(T)z0WvE)#Nm$(IY;~@2d)I7s6t>m4ngedH$B4aR%wU%tctgd0@teV(e2|d1 z&DHGn_+9n_ugBwR)BL(coSe+UdsH03n<7)r<)C9Kjth^R6wfsX^eZ@_;v`OqJ~>+s zVo=49_*qWMI!(B*)Y;PNbo=cE4PJMfz0B`wsr8zTIK!>K7iGjdVx>})GQypH((AcB z3=W)E@hN01|4fZo9oGC;E; z-@KkqirwZF!7w&vhEW{G)-ZMqVd(@CtBAdGz()&pT=4I&s9OR8aqG;A~mrCT2j zW36FbRNEjbZo{Q@3;f|bm@tlRooA=eyC5o2`ehP*nk;jU!Da{tF%ZII_XxMXHDAbG zF&K#XYntEIG+QDip5+oVtiu|xKIRjBad*zePElPFS9O7rEs=))=Tn_wy{JVeN1=`L z&XdUF4CBxvgv&f;LCU3KD&@C_+Nl#ko`*4!t)>TS;X@NIZ5vwA$s60lr+)0=xOR^0 z;@A#cVdgsa;Ro!;uQ-4|a0oZijX4}98+s@MM<^FZsTjR{$1!r?IPE|m?L)?`p% zRFJAY8`uKNs}%%Iw_vi)@f_X76SKD<>*kR5zoaQ4FK;C`X+m3&kGWuA8Lz`9yZ~1< W`A{fxO&Y1 delta 1400 zcmZ`(ZBSHY7(LJK-Vg3x5|$iYL|U6f12SVqLy#IoBnrqt(2AlJF0hKbw0jpJ!o`0 zmCR-52=`a}qh0<$#8=iH3Utryt725NC|h=%C!}p+H}`V3r!gHD(8M+((N2E!9wThq zuxB~0<07&NDUo@DDlQY;n~moAv^R&dRp^mQ?%e)pioubo=`9T7uQ zF+*(K3`gyCoZui*@ue6}$)T^sY)Y={79m^QO34Ahk%c)%)hu7JBnN2P~`~ftHl^=Epp5 zB!Dp+$n&hRuvRKa`WZp}0_ZAOAP?OOTj;Nur{Xxa;3D01dj`i7KC~jqD_J-_fwljX z#yn@|ZU2YB?oPNKPMCDtX+}6rzUS=(@R;3@Y~m@rGq+0GadC`y|He1wdoCqpi)}dB zwaQg6gN>}6;^RAxPxv(SP!6r5LjG?cgWA!<7jaTt*7IV1gb_dlQFNh~FWF&qV-WjT z*UQR2*6znO9Ka16#5c_T$d~3e`tdUc@EeYjf@8D<$0-Mcv<|0ukCRk{A$k(0X%o&+ zEzVK{hRMJv?|Y7RVT3|BPhA+J7%s%<2*zm$7ikQa=qexSSzMv-F+q1Qi4XaM)`UfO z*`1_7Rq#OKSHcxox>G?<${&!KH~!7DvmPcLcd_z+NjYuf`b-|uN4$>%A9G+J6E1wp ahx@Zc{X9{>NYoqnig}H>S={7dc>e+($Xnw8 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])); } } }