Rev 939 | Rev 1667 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.del.client.services.rest.async;import com.google.gwt.http.client.Request;import com.google.gwt.http.client.RequestCallback;import com.google.gwt.http.client.Response;import com.google.gwt.user.client.Window;/*** Cette classe correspond au retour asynchrone d'un webservice php qui retourne* l'objet generique T si l'appel de service est un succcès** @author LIENS** @param <T>*/public abstract class PHPCallback<T> implements RequestCallback {public enum ModeRequete {AJOUT, MODIFICATION, SUPPRESSION, LECTURE}protected ModeRequete mode;public PHPCallback() {}public void setMode(ModeRequete mode) {this.mode = mode;}@Overridepublic void onResponseReceived(Request request, Response response) {int statusCode = response.getStatusCode();int codeAttendu = 500;switch (mode) {case AJOUT:codeAttendu = 201;break;case MODIFICATION:codeAttendu = 200;break;case SUPPRESSION:codeAttendu = 200;break;case LECTURE:codeAttendu = 200;break;default:codeAttendu = 500;break;}if (statusCode == codeAttendu) {surRetour(parserJSON(response.getText()));} else {surErreur("Erreur " + statusCode + ": " + response.getText());}}/*** Cette methode permet de pareser le JSON retourné par le webservice pour* le transformer en objet métier** @param retourService* @return*/public abstract T parserJSON(String retourService);@Overridepublic void onError(Request request, Throwable exception) {surErreur(exception.getMessage());}public abstract void surRetour(T objetRetour);public void surErreur(String messageErreur) {Window.alert(messageErreur);}}