Subversion Repositories eFlore/Applications.del

Rev

Rev 938 | Rev 1503 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.del.client.utils;

import java.util.HashMap;
import java.util.Map;

import com.google.gwt.http.client.Response;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONValue;

public class UtilitairesAutoCompletionService {
        
        public static String effectuerPreTraitementChaineRequeteGenreEspeceSlash(String requete) {
                String chaineTraitee = requete;
                String[] parties = requete.split(" ", 2);
                
                if(parties.length == 2) {
                        if(parties[1].trim().isEmpty()) {
                                parties[1] = "*";
                        }
                        chaineTraitee = parties[0]+"/"+parties[1];
                }
                
                return chaineTraitee;
        }
        
        public static String effectuerPreTraitementChaineRequeteGenreEspeceEflore(String requete) {
                
                String chaineTraitee = "?recherche=etendue&ns.structure=au&retour.format=oss&masque="+requete;
                return chaineTraitee;
        }
        
        public static Map<String, String> extraireTaxonsNumNomsResultatRetourSimple(Response response) {
                JSONObject responseValue = JSONParser.parseStrict(response.getText()).isObject();
                JSONArray noms = responseValue.get("resultats").isArray();
                
                final int taillemax = noms.size();
                Map<String, String> retourTaxons = new HashMap<String, String>(taillemax);
                        
                for (int i = 0; i < taillemax; i++) {
                        String nom = (noms.get(i).isArray().get(0).isString().stringValue());
                        String taxon = (noms.get(i).isArray().get(1).isString().stringValue());
                        retourTaxons.put(nom, taxon);
                }
                return retourTaxons;
        }
        
        public static String[] parserResultatRetourSimple(Response response) {
                JSONObject responseValue = JSONParser.parseStrict(response.getText()).isObject();
                JSONArray noms = responseValue.get("resultats").isArray();
                
                String[] valeurs = new String[0];
                final int taillemax = noms.size();      
                valeurs = new String[taillemax];
                for (int i = 0; i < taillemax; i++) {
                        valeurs[i] = (noms.get(i).isArray().get(0).isString().stringValue());
                }
                return valeurs;
        }
        
        public static String[] parserRetourSimple(Response response) {
                final JSONValue responseValue = JSONParser.parseStrict(response.getText());
                JSONArray noms;
                String[] valeurs = new String[0];
        
                if ((noms=responseValue.isArray()) != null) {
                                
                        final int taillemax = noms.size();      
                        valeurs = new String[taillemax];
                        for (int i = 0; i < taillemax; i++) {
                                valeurs[i] = (noms.get(i).isArray().get(0).isString().stringValue());
                        }
                }
                return valeurs;
        }
        
        public static String[] parserRetourOss(Response response) {
                JSONValue retourJson = JSONParser.parseStrict(response.getText());
                JSONArray tableauResultat = retourJson.isArray().get(1).isArray();
                
                String[] suggestions = new String[tableauResultat.size()];
                for (int i = 0; i < tableauResultat.size(); i++) {
                        suggestions[i] = tableauResultat.get(i).isString().stringValue();
                }
                
                return suggestions;
        }
}