Skip to content
Snippets Groups Projects
Commit f07b6ffc authored by Aymane Ismail's avatar Aymane Ismail
Browse files

deuxieme commit

parent e250c1b0
Branches
No related tags found
No related merge requests found
...@@ -11,7 +11,7 @@ retournés par le côté serveur. ...@@ -11,7 +11,7 @@ retournés par le côté serveur.
<valeur> ::= <char> | <chaine> | [0-9]* | [0-9]* "." [0-9]* <valeur> ::= <char> | <chaine> | [0-9]* | [0-9]* "." [0-9]*
<chaine> ::= "<char>*" <chaine> ::= "<char>*"
<char> ::= un charactère alphanumérique <char> ::= un charactère alphanumérique
<reponse> ::= <reponse> ::= "resultat:" <type> "," <valeur>
``` ```
## Exemples de ce qui devra être transmis ## Exemples de ce qui devra être transmis
......
package fr.ulille.iut.m4102; package fr.ulille.iut.m4102;
import java.util.Arrays;
/** /**
* Cette classe se trouvera côté service * Cette classe se trouvera côté service
* Elle recevra une requête sous forme de chaîne * Elle recevra une requête sous forme de chaîne
...@@ -17,10 +19,46 @@ public class AccesService { ...@@ -17,10 +19,46 @@ public class AccesService {
} }
public String traiteInvocation(String invocation) { public String traiteInvocation(String invocation) {
// ici, il faudra décomposer la chaîne pour retrouver la méthode appelée
// et les paramètres, réaliser l'invocation sur la classe AlaChaine puis
// renvoyer le résultat sous forme de chaîne.
return null; String[] invocDivisee = invocation.replace("param[","").replace("]","").split(":");
String nomMethode = invocDivisee[1];
String[] paramTab = Arrays.copyOfRange(invocDivisee, 2, invocDivisee.length);
String resultatFormate = "resultat:";
switch(nomMethode) {
case "nombreMots":
if(paramTab[0].split(",")[0].equals("string")) {
resultatFormate += "int," + alc.nombreMots(paramTab[0].split(",")[1]);
}
break;
case "compteChar":
if(paramTab[0].split(",")[0].equals("string") && paramTab[1].split(",")[0].equals("char")) {
resultatFormate += "int," + alc.compteChar(paramTab[0].split(",")[1],paramTab[1].split(",")[1].charAt(0));
}
break;
case "asphyxie":
if(paramTab[0].split(",")[0].equals("string")) {
resultatFormate += "string,";
try {
resultatFormate += alc.asphyxie(paramTab[0].split(",")[1]);
} catch (PasDAirException e) {
resultatFormate += "error";
}
} }
break;
case "leetSpeak":
if(paramTab[0].split(",")[0].equals("string")) {
resultatFormate += "string," + alc.leetSpeak(paramTab[0].split(",")[1]);
}
break;
}
return resultatFormate;
}
} }
...@@ -11,30 +11,58 @@ package fr.ulille.iut.m4102; ...@@ -11,30 +11,58 @@ package fr.ulille.iut.m4102;
*/ */
public class Intermediaire implements AlaChaineInterface { public class Intermediaire implements AlaChaineInterface {
private AlaChaine alc; private AlaChaine alc;
private AccesService aService;
public Intermediaire() { public Intermediaire() {
// pour l'instant on accède directement au service après instanciation
aService = new AccesService();
alc = new AlaChaine(); alc = new AlaChaine();
} }
public int nombreMots(String chaine) { public int nombreMots(String chaine) {
System.out.println("Méthode: NombreMots ; Paramètre(String): "+chaine +" ; Resultat(int): "+alc.nombreMots(chaine)); /* System.out.println("Méthode: NombreMots ; Paramètre(String): "+chaine +" ; Resultat(int): "+alc.nombreMots(chaine));
return alc.nombreMots(chaine); return alc.nombreMots(chaine); */
String invocation = "Call:nombreMots:param[string," + chaine + "]";
String resInv = aService.traiteInvocation(invocation);
String valeur = resInv.split(":")[1].split(",")[1];
return Integer.parseInt(valeur);
} }
public String asphyxie(String chaine) throws PasDAirException { public String asphyxie(String chaine) throws PasDAirException {
System.out.println("Méthode: asphyxie ; Paramètre(String): "+chaine +" ; Resultat(String): "+alc.asphyxie(chaine)+" ; PasDAirException: Déjà asphyxiée"); /* System.out.println("Méthode: asphyxie ; Paramètre(String): "+chaine +" ; Resultat(String): "+alc.asphyxie(chaine)+" ; PasDAirException: Déjà asphyxiée");
return alc.asphyxie(chaine); return alc.asphyxie(chaine);*/
String invocation = "Call:asphyxie:param[string," + chaine + "]";
String resInv = aService.traiteInvocation(invocation);
String valeur = resInv.split(":")[1].split(",")[1];
return valeur;
} }
public String leetSpeak(String chaine) { public String leetSpeak(String chaine) {
System.out.println("Méthode: leetSpeak ; Paramètre(String): "+chaine +" ; Resultat(String): "+alc.leetSpeak(chaine)); /* System.out.println("Méthode: leetSpeak ; Paramètre(String): "+chaine +" ; Resultat(String): "+alc.leetSpeak(chaine));
return alc.leetSpeak(chaine); return alc.leetSpeak(chaine);*/
String invocation = "Call:leetSpeak:param[string," + chaine + "]";
String res = aService.traiteInvocation(invocation);
String valeur = res.split(":")[1].split(",")[1];
return valeur;
} }
public int compteChar(String chaine, char c) { public int compteChar(String chaine, char c) {
System.out.println("Méthode: compteChar ; Paramètre(String, char): "+chaine+", "+c+" ; Resultat(int): "+alc.compteChar(chaine, c)); /* System.out.println("Méthode: compteChar ; Paramètre(String, char): "+chaine+", "+c+" ; Resultat(int): "+alc.compteChar(chaine, c));
return alc.compteChar(chaine, c); return alc.compteChar(chaine, c);*/
String invocation = "Call:compteChar:param[string, " + chaine + "]:param[char," + c + "]";
String res = aService.traiteInvocation(invocation);
String valeur = res.split(":")[1].split(",")[1];
return Integer.parseInt(valeur);
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment