Rev 378 | Rev 752 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.util;
import java.util.HashMap;
import java.util.Iterator;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.http.JsonRestRequestBuilder;
import org.tela_botanica.client.modeles.Configuration;
import com.extjs.gxt.ui.client.Registry;
import com.google.gwt.http.client.URL;
/**
* @author Gréguoire DUCHÉ <greguoire@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @description La classe utilDAO fournit des méthodes communes pour les outils DAO
* */
public class UtilDAO {
private static String baseUrl = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
public static JsonRestRequestBuilder construireRequete(String nomService) {
return construireRequete(nomService, null, null, "GET");
}
public static JsonRestRequestBuilder construireRequetePost(String nomService) {
return construireRequete(nomService, null, null, "POST");
}
public static JsonRestRequestBuilder construireRequete(String nomService, String parametre) {
String[] parametres = {parametre};
return construireRequete(nomService, parametres);
}
public static JsonRestRequestBuilder construireRequete(String nomService, String[] parametres) {
return construireRequete(nomService, parametres, "GET");
}
public static JsonRestRequestBuilder construireRequete(String nomService, String[] parametres, String typeRequete) {
return construireRequete(nomService, parametres, null, typeRequete);
}
public static JsonRestRequestBuilder construireRequete(String nomService, HashMap<String, String> restrictions) {
return construireRequete(nomService, restrictions, "GET");
}
public static JsonRestRequestBuilder construireRequete(String nomService, HashMap<String, String> restrictions, String typeRequete) {
return construireRequete( nomService, null, restrictions, typeRequete);
}
public static JsonRestRequestBuilder construireRequete(String nomService, String[] parametres, HashMap<String, String> restrictions, String typeRequete) {
String restrictionsUrl = construireUrlParametres(restrictions);
String parametresUrl = construireUrlChemin(parametres);
String urlComplete = baseUrl + nomService + parametresUrl + restrictionsUrl;
String urlCompleteEncodee = URL.encode(urlComplete);
JsonRestRequestBuilder jrrb;
if (typeRequete.equals("GET")) {
jrrb = new JsonRestRequestBuilder(JsonRestRequestBuilder.GET, urlCompleteEncodee);
} else {
jrrb = new JsonRestRequestBuilder(JsonRestRequestBuilder.POST, urlCompleteEncodee);
}
return jrrb;
}
private static String construireUrlParametres(HashMap<String, String> parametres) {
String parametresUrl = "";
if (parametres != null && parametres.size() > 0) {
parametresUrl = "?";
Iterator<String> iterateur = parametres.keySet().iterator();
while (iterateur.hasNext()) {
String cle = iterateur.next();
parametresUrl += cle + "=" + parametres.get(cle);
if (iterateur.hasNext()) {
parametresUrl = parametresUrl + "&";
}
}
}
return parametresUrl;
}
private static String construireUrlChemin(String[] morceauxDuChemin) {
String cheminUrl = "";
if (morceauxDuChemin != null && morceauxDuChemin.length > 0) {
cheminUrl = "/";
for (int i = 0; i < morceauxDuChemin.length; i++) {
cheminUrl += (morceauxDuChemin[i] != null ? morceauxDuChemin[i] : "*") + "/";
}
}
return cheminUrl;
}
}