4,115 → 4,92 |
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.core.client.GWT; |
import com.google.gwt.http.client.RequestBuilder; |
import com.google.gwt.http.client.URL; |
|
public class UtilDAO { |
|
/** |
* @author greg |
* @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(); |
|
/** |
* @author greg |
* @description La classe construireRequete permet de revonyer un object RequestBuilder pour le service JREST |
* @param nomService String le nom du service JREST |
* @param strParametres String le paramètre pour le service |
*/ |
public static JsonRestRequestBuilder construireRequete(String nomService) { |
return construireRequete(nomService, null, null, "GET"); |
} |
|
public static RequestBuilder construireRequete(String nomService, String strParametres) { |
public static JsonRestRequestBuilder construireRequetePost(String nomService) { |
return construireRequete(nomService, null, null, "POST"); |
} |
|
String[] arrParametres = {strParametres}; |
return construireRequete(nomService, arrParametres); |
public static JsonRestRequestBuilder construireRequete(String nomService, String parametre) { |
String[] parametres = {parametre}; |
return construireRequete(nomService, parametres); |
} |
|
/** |
* |
* @param nomService |
* @param arrParametres |
* @return |
*/ |
public static RequestBuilder construireRequete(String nomService, String[] arrParametres) { |
return construireRequete(nomService, arrParametres, "GET"); |
public static JsonRestRequestBuilder construireRequete(String nomService, String[] parametres) { |
return construireRequete(nomService, parametres, "GET"); |
} |
|
public static RequestBuilder construireRequete(String nomService, String[] arrParametres, String typeRequete) { |
|
HashMap<String, String> hmRestrictions = null; |
return construireRequete(nomService, arrParametres, hmRestrictions, typeRequete); |
|
public static JsonRestRequestBuilder construireRequete(String nomService, String[] parametres, String typeRequete) { |
return construireRequete(nomService, parametres, null, typeRequete); |
} |
|
public static RequestBuilder construireRequete(String nomService, HashMap<String, String> hmRestrictions) { |
return construireRequete(nomService, hmRestrictions, "GET"); |
public static JsonRestRequestBuilder construireRequete(String nomService, HashMap<String, String> restrictions) { |
return construireRequete(nomService, restrictions, "GET"); |
} |
public static RequestBuilder construireRequete(String nomService, HashMap<String, String> hmRestrictions, String typeRequete) { |
|
String[] arrParametres = null; |
return construireRequete( nomService, arrParametres, hmRestrictions, typeRequete); |
|
public static JsonRestRequestBuilder construireRequete(String nomService, HashMap<String, String> restrictions, String typeRequete) { |
return construireRequete( nomService, null, restrictions, typeRequete); |
} |
|
public static RequestBuilder construireRequete(String nomService, String[] arrParametres, HashMap<String, String> hmRestrictions, String 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); |
|
String restrictions = ""; |
|
//Les restrictions sont ajoutées en paramètres GET |
if ((hmRestrictions!=null)&&(hmRestrictions.size() > 0)) { |
|
Iterator<String> itRestrictions = hmRestrictions.keySet().iterator(); |
while (itRestrictions.hasNext()) { |
String cle = itRestrictions.next(); |
restrictions += cle + "=" + hmRestrictions.get(cle); |
|
if (itRestrictions.hasNext()) { |
restrictions = restrictions + "&"; |
JsonRestRequestBuilder jrrb; |
if (typeRequete.equals("GET")) { |
jrrb = new JsonRestRequestBuilder(JsonRestRequestBuilder.GET, urlCompleteEncodee); |
} else { |
jrrb = new JsonRestRequestBuilder(JsonRestRequestBuilder.POST, urlCompleteEncodee); |
} |
return jrrb; |
} |
|
restrictions = "?" + restrictions; |
} |
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); |
|
String strParametres = "/"; |
if (arrParametres != null) { |
|
for (int i=0; i < arrParametres.length; i++) { |
if (arrParametres[i] != null) { |
strParametres += arrParametres[i]+ "/"; |
if (iterateur.hasNext()) { |
parametresUrl = parametresUrl + "&"; |
} |
} |
} |
|
String wholeUrl = baseUrl + nomService + strParametres + restrictions; |
wholeUrl = URL.encode(wholeUrl); |
|
RequestBuilder rb; |
if (typeRequete.equals("GET")) { |
rb = new RequestBuilder(RequestBuilder.GET, wholeUrl); |
} else { |
rb = new RequestBuilder(RequestBuilder.POST, wholeUrl); |
return parametresUrl; |
} |
|
return rb; |
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] : "*") + "/"; |
} |
|
/** |
* |
* @param nomService String le nom du service |
* @return un objet RB |
*/ |
public static RequestBuilder construireRequete(String nomService) { |
|
String[] arrParametres = null; |
return construireRequete(nomService, arrParametres); |
} |
return cheminUrl; |
} |
|
} |
} |