Merge branch 'master' of github:jsmaniac/2011-m1s2-ter

This commit is contained in:
Georges Dupéron 2011-02-01 18:05:15 +01:00
commit f04c6d5124

View File

@ -8,6 +8,14 @@ import java.net.URLConnection;
import com.google.gson.Gson;
import com.google.gson.stream.JsonReader;
/**
* @author Bertrand BRUN
*
* Cette classe permet de dialoguer avec le serveur de PtiClic pour récupérée soit des parties
* soit le score qu'a réalisé un utilisateur.
* Elle permet aussi d'envoyer au serveur les parties realiser par l'utilisateur pour que le serveur
* puisse insérer la contribution de l'utilisateur, mais aussi pouvoir calculer le score de celui-ci.
*/
public class Network {
public enum Action {
@ -29,11 +37,22 @@ public class Network {
private Mode mode;
private String serverURL;
/**
* Constructeur
*
* @param serverURL Chaine de caractères représentant l'URL se situe le serveur.
* @param mode Le type de partie que l'on veut récupérer.
*/
public Network(String serverURL, Mode mode) {
this.mode = mode;
this.serverURL = serverURL;
}
/**
* Cette méthode permet de récupérer du serveur un certain nombre de parties.
* @param nbGames Le nombre de parties que l'on veut récupérer.
* @return
*/
public Game getGames(int nbGames) {
Game game = null;
try {
@ -53,16 +72,23 @@ public class Network {
}
reader.endArray();
reader.close();
return game;
} catch (IOException e) {
e.printStackTrace();
return null;
}
return game;
}
/**
* Permet la transformation du Json en une instance de Game.
*
* @param reader Le Json sous forme d'un flux.
* @param gson Une instance de Gson.
* @return Une nouvelle instance de Game.
* @throws IOException
*/
private Game makeGame(JsonReader reader, Gson gson) throws IOException {
int id = -1;
int cat1 = -1;
@ -97,7 +123,30 @@ public class Network {
return new Game(id, cat1, cat2, cat3, cat4, center, cloud);
}
public boolean sendGame(Game game) {
throw new UnsupportedOperationException();
/**
* Cette méthode permet d'envoyer les parties au serveur pour qu'il puisse les
* rajouter à la base de données, et calculer le score.
* @param game La partie jouee par l'utilisateur
* @return <code>true</code> si on a pu envoyer la partie au serveur <code>false</code> sinon.
*/
public boolean sendGame(GamePlayed game) {
try {
URL url = new URL(this.serverURL);
URLConnection connection = url.openConnection();
connection.addRequestProperty("action", "sendpartie");
connection.addRequestProperty("mode", mode.value());
Gson gson = new Gson();
String json = gson.toJson(game);
connection.addRequestProperty("json", json);
// TODO : Regarder si il ne faudrait pas que le serveur renvoie une valeur indiquant si l'action c'est bien derouler.
connection.connect();
} catch (IOException e) {
return false;
}
return true;
}
}