Tp5 question 1-Restaurer

Conception de logiciels Intranet : patrons et canevas

Modérateurs : Douin, graffion

GANKAMA
Messages : 58
Inscription : 26 oct. 2017 16:51

Tp5 question 1-Restaurer

Message par GANKAMA » 17 mars 2018 22:11

Bonsoir,

J'ai ce code qui marche correctement chez moi que jnews refuse:"pas de restauration"
Je ne vois pas du tout d’où provient l'erreur.

/** resturation complète de la liste rééelle à partir de la dernière sauvegarde */
public boolean restaurer(){
Connexion connexion = new Connexion(this.url,"nom=" + this.nom + "&commande=toString"); // à compléter
String resultatDistant=connexion.result();
StringTokenizer st = new StringTokenizer(resultatDistant, "[, ]");
//System.out.println("Dans restaurer :"+resultatDistant);
while(st.hasMoreTokens()){
this.liste.ajouter(st.nextToken());
}
if(liste.equals(resultatDistant) ) {return true;}
else {new CoherenceListeException("taille");
return false; // à compléter
}
}


Cordialement

NAVARRO
Messages : 42
Inscription : 02 oct. 2016 13:44

Re: Tp5 question 1-Restaurer

Message par NAVARRO » 18 mars 2018 2:10

Hello GANKAMA,

J'ai eu des soucis sur le toString() de ListeProxyHttp.
J'avais des espaces en trop autour des tokens. Vérifies que ce n'est pas ton cas.

Sinon juste pour ma "culture perso":
Que signifie le liste.equals? ça utilise le toString() de la liste en fait?
if(liste.equals(resultatDistant) ) {return true;}

Je ne savais pas qu'on pouvait utiliser cette syntaxe pour le StringTokenizer non plus pour le deuxième paramètre:
new StringTokenizer(resultatDistant, "[, ]")

Bon courage, la question 2 a l'air encore plus dure.
Vincent.

GANKAMA
Messages : 58
Inscription : 26 oct. 2017 16:51

Re: Tp5 question 1-Restaurer

Message par GANKAMA » 18 mars 2018 9:31

Bonjour Navarro,

Je galère avec la methode restaurer.Quand je fais ça: if(liste.equals(resultatDistant) ) {return true;}
je veux comparer la liste locale et la liste distante,mais j'ai comme l'impression que ça ne fonctionne pas.J'ai une autre question ,comment faire en sorte que la restauration ne se fasse que sur la liste locale .Quand je fais ceci :liste.ajouter(st.nextToken()); cela impacte aussi la liste distante.
Doit-on modifier la methode restaurer de listImpl:
public boolean restaurer(){
throw new UnsupportedOperationException(" pas de restauration");
}

Bref quelqu'un peut il m'eclaircir.

Cordialement

julien_24
Messages : 47
Inscription : 17 oct. 2017 13:41

Re: Tp5 question 1-Restaurer

Message par julien_24 » 18 mars 2018 10:30

Bonjour,

@KANGAMA, dans le test que tu fais a la fin de ta methode restaurer, pour savoir si la liste a été restaurée, dans ton else, tu lèves une exception et ensuite tu veux retourner false.
Si tu lèves une exception, le code qui suit n'est pas exécuté, un catch est recherché, en gros ta méthode ne retourne jamais false.
Es ce que ta liste locale gère les doublons?

julien

NAVARRO
Messages : 42
Inscription : 02 oct. 2016 13:44

Re: Tp5 question 1-Restaurer

Message par NAVARRO » 18 mars 2018 11:20

Bonjour,

J'ai eu aussi du mal sur le restaurer. J'ai trouvé que l'énoncé était un peu flou.
Je suis parti du toString distant et j'ai recree ma liste locale ensuite.

String params = "nom="+ this.nom + "&commande=toString";
Connexion connexion = new Connexion (this.url, params);
String resultat = connexion.result();

Pour ta question : Doit-on modifier la methode restaurer de listImpl
je n'ai pas eu besoin de modifier la classe ListeImpl.

Bon courage

GANKAMA
Messages : 58
Inscription : 26 oct. 2017 16:51

Re: Tp5 question 1-Restaurer

Message par GANKAMA » 18 mars 2018 12:17

Merci Beaucoup Navarro et Julien_24,

j'ai modifié mon test de comparaison des deux listes.

public boolean restaurer(){
Connexion connexion = new Connexion(this.url,"nom=" + this.nom + "&commande=toString"); // à compléter
String resultatDistant=connexion.result();
StringTokenizer st = new StringTokenizer(resultatDistant,"[,]");
//System.out.println("Dans restaurer :"+resultatDistant);
while(st.hasMoreTokens()){
liste.ajouter(st.nextToken());
}
boolean testRestauration=liste.equals(resultatDistant);

if(testRestauration==true ) {return true;}
else {new CoherenceListeException("restauration");

}
//System.out.println("Dans restaurer :"+liste.toString());
return testRestauration;
}

Je récupère bien la liste distante mais pour la restauration c a d liste.ajouter(st.nextToken()); comment faire en sorte qu'elle n'impacte pas la liste distante?avoir plutôt quelque chose du genre liste.add(st.nextToken());

julien_24
Messages : 47
Inscription : 17 oct. 2017 13:41

Re: Tp5 question 1-Restaurer

Message par julien_24 » 18 mars 2018 16:11

Tu as oublié la clause throw pour lancer l'exception

throw new CoherenceListeException()

Perso avant de restaurer la liste locale dans la methode restaurer, je la vide (la liste locale), comme tu le fais ca fonctionne?

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 0 invité