Ignore:
Timestamp:
04/26/10 19:12:49 (14 years ago)
Author:
cbipsl
Message:

maj eccad V3.2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ether_eccad/trunk/ECCAD_INTERFACE/WEB-INF/src/org/medias/eccad/metier/traducteur/TraducteurStat.java

    r68 r70  
    66import java.util.List; 
    77import java.util.Map; 
    8 import java.util.logging.Logger; 
    9  
    108 
    119import org.dom4j.Document; 
     
    2422public class TraducteurStat { 
    2523        XmlBeanFactory xmlbean; 
    26          
     24 
    2725        public TraducteurStat() { 
    2826                xmlbean = SpringBeanFactory.getXmlFactory(); 
    2927        } 
    30          
    31         public String encodeCritere(Map<String, String> criteres, long id_param, long id_produit, Long id_colormap, String fonction) { 
    32                 return encodeCritere(criteres, id_param, id_produit, id_colormap, fonction, null); 
     28 
     29        public String encodeCritere(Map<String, String> criteres, long id_param, long id_produit, long id_colormap, long id_classdis, long id_secteur, long id_rcp, String alt, String fonction, long id_mask) { 
     30                return encodeCritere(criteres, id_param, id_produit, id_colormap, id_classdis, id_secteur, id_rcp, alt, fonction, null, id_mask); 
    3331        } 
    34          
    35         public String encodeCritere(Map<String, String> criteres, long id_param, long id_produit, Long id_colormap, String fonction, Long id_grille) { 
     32 
     33        public String encodeCritere(Map<String, String> criteres, long id_param, long id_produit, long id_colormap, long id_classdis, long id_secteur, long id_rcp, String alt, String fonction, Long id_grille, long id_mask) { 
    3634                String xml = new String(); 
    3735                InfoConnectBean infoconnect = (InfoConnectBean) xmlbean.getBean("infoConnect"); 
    38                  
     36 
    3937                xml = "<requete>\n"; 
    40                  
     38 
    4139                xml += XmlHelper.createNode("parametre", id_param); 
    4240                xml += XmlHelper.createNode("produit", id_produit); 
    4341                xml += XmlHelper.createNode("colormap", id_colormap); 
    44                  
     42                xml += XmlHelper.createNode("scalevalue", id_classdis); 
     43                xml += XmlHelper.createNode("secteur", id_secteur); 
     44                xml += XmlHelper.createNode("rcp", id_rcp); 
     45                if (alt == null || alt.equals("")) alt = "0"; 
     46                xml += XmlHelper.createNode("alt", alt); 
     47                xml += XmlHelper.createNode("mask", id_mask); 
     48 
    4549                xml += "<connexion>\n"; 
    4650                xml += XmlHelper.createNode("host", infoconnect.getDb_url()); 
     
    4852                xml += XmlHelper.createNode("user", infoconnect.getDb_login()); 
    4953                xml += "</connexion>\n"; 
    50                  
     54 
    5155                xml += "<domaine>\n"; 
    5256                xml += XmlHelper.createNode("lat-max", getValeur("lat-max", criteres)); 
     
    5559                xml += XmlHelper.createNode("lon-min", getValeur("lon-min", criteres)); 
    5660                xml += "</domaine>\n"; 
    57                  
     61 
    5862                xml += "<temporel>\n"; 
    5963                xml += XmlHelper.createNode("begin", getValeur("beg-date", criteres)); 
    6064                xml += XmlHelper.createNode("end", getValeur("end-date", criteres)); 
    6165                xml += "</temporel>\n"; 
    62                  
     66 
    6367                xml += "<fonction>\n"; 
    6468                xml += XmlHelper.createNode("nom", fonction); 
     
    7276                } 
    7377                xml += "</fonction>\n"; 
    74                  
    75                  
     78 
    7679                xml += "</requete>\n"; 
    77                 //system.out.println(xml); 
     80//              System.out.println(xml); 
    7881                return xml; 
    7982        } 
    80          
     83 
    8184        private String getValeur(String critere, Map<String, String> criteres) { 
    8285                String valeur = criteres.get(critere); 
     
    8588                return valeur; 
    8689        } 
    87          
     90 
    8891        public StatReponse getReponse(String xml) { 
    89                 LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "getXMLtoDocument"); 
    90                 LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "getXMLtoDocument + " + xml + "\n mon xml"); 
    9192                Document doc = null; 
    9293                try { 
    93                         LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "getXMLtoDocument :: " + xml.getBytes("ISO-8859-1").length); 
    94                  
    95                 doc = XmlHelper.getXMLtoDocument(new ByteArrayInputStream(xml.getBytes("ISO-8859-1")), null); 
    96                 } 
    97                 catch (Exception e) { 
     94                        doc = XmlHelper.getXMLtoDocument(new ByteArrayInputStream(xml.getBytes("ISO-8859-1")), null); 
     95                } catch (Exception e) { 
    9896                        LoggerPerso.log(TraducteurStat.class, LoggerPerso.ERROR, "erreur encodage"); 
    9997                } 
    100                  
    101                 LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "getXMLtoDocument ok : " + xml); 
     98 
     99//              LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "getXMLtoDocument=\n" + xml); 
    102100                String erreur = getError(doc); 
    103                  
     101 
    104102                if (erreur != null) 
    105103                        return new StatReponse(erreur); 
    106                  
    107                 LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "parse zone"); 
     104 
    108105                Zone zone = new Zone(Double.parseDouble(getValue(doc, "//domaine/lat-max")), 
    109106                                                         Double.parseDouble(getValue(doc, "//domaine/lat-min")), 
    110107                                                         Double.parseDouble(getValue(doc, "//domaine/lon-max")), 
    111108                                                         Double.parseDouble(getValue(doc, "//domaine/lon-min"))); 
    112                  
    113                 LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "parse zone ok"); 
     109 
     110//              LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "parse zone ok"); 
    114111                Temporel tempo = new Temporel(getValue(doc, "//temporel/begin"), getValue(doc, "//temporel/end")); 
    115                  
    116                 LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "parse url"); 
     112 
     113//              LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "parse url"); 
    117114                String url = getValue(doc, "//image-path"); 
    118115                InfoCarte info = null; 
    119                 LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "parse info"); 
     116//              LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "parse info"); 
    120117                if (!getValue(doc, "//pas/pas-lon").equals("") || !getValue(doc, "//pas/pas-lat").equals("")) 
    121                         info = new InfoCarte(Double.parseDouble(getValue(doc, "//pas/pas-lon")), Double.parseDouble(getValue(doc, "//pas/pas-lat")));            
    122                  
    123                 LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "parse variable"); 
     118                        info = new InfoCarte(Double.parseDouble(getValue(doc, "//pas/pas-lon")), Double.parseDouble(getValue(doc, "//pas/pas-lat"))); 
     119 
     120//              LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "parse variable"); 
    124121                Map<String, String> map = getMapValue(doc, "//statistique/variable", "nom", "valeur"); 
    125                  
    126                 LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "recuperation liste point"); 
    127                 List<Valeur> graphe     = getListValue(doc, "//graphe/point", "x", "y"); 
    128                 LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "recuperation liste point ok"); 
     122 
     123//              LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "recuperation liste point"); 
     124                List<Valeur> graphe = getListValue(doc, "//graphe/point", "x", "y"); 
     125//              LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "recuperation liste point ok"); 
    129126                Float min = getFloatValue(doc, "//extremes/mini"); 
    130127                Float max = getFloatValue(doc, "//extremes/maxi"); 
    131                 LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "recuperation min max " + min + " : " + max); 
     128//              LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "recuperation min max " + min + " : " + max); 
    132129                StatReponse reponse = new StatReponse(zone, tempo, info, url, map, graphe); 
    133130                reponse.setMaximal(max); 
    134131                reponse.setMinimal(min); 
    135                  
     132 
    136133                Float centerValue = getFloatValue(doc, "//center/center-value"); 
    137134                reponse.setCenter(centerValue); 
    138                  
     135 
    139136                Float centerLat = getFloatValue(doc, "//center/center-lat"); 
    140137                reponse.setCenterLat(centerLat); 
    141                  
     138 
    142139                Float centerLon = getFloatValue(doc, "//center/center-lon"); 
    143140                reponse.setCenterLon(centerLon); 
    144141                 
     142                Float globalSum = getFloatValue(doc, "//total"); 
     143                reponse.setGlobalSum(globalSum); 
    145144                return reponse; 
    146145        } 
    147          
     146 
    148147        private String getError(Document doc) { 
    149                 Node noeud = doc.selectSingleNode("//error"); 
     148                Node noeud = (doc==null?null:doc.selectSingleNode("//error")); 
    150149                if (noeud == null) 
    151150                        return null; 
     
    153152                        return noeud.getText(); 
    154153        } 
    155          
     154 
    156155        private Map<String, String> getMapValue(Document doc, String xpath, String nom, String valeur) { 
    157                 List liste_node = doc.selectNodes(xpath); 
     156                List<?> liste_node = doc.selectNodes(xpath); 
    158157                Map<String, String> map = new HashMap<String, String>(); 
    159                  
     158 
    160159                for (Object onode : liste_node) { 
    161160                        map.put(((Node)onode).selectSingleNode("./" + nom).getText(), ((Node)onode).selectSingleNode("./" + valeur).getText()); 
    162161                } 
    163                 ////system.out.println(map); 
    164162                return map; 
    165163        } 
    166          
     164 
    167165        private List<Valeur> getListValue(Document doc, String xpath, String nom, String valeur) { 
    168                 List liste_node = doc.selectNodes(xpath); 
     166                List<?> liste_node = doc.selectNodes(xpath); 
    169167                List<Valeur> liste = new LinkedList<Valeur>(); 
    170                  
     168 
    171169                for (Object onode : liste_node) { 
    172                         //LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "node en cours" + onode.toString()); 
     170//                      LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "nom=" + (((Node)onode).selectSingleNode("./" + nom).getText())+", val="+(((Node)onode).selectSingleNode("./" + valeur).getText())); 
    173171                        liste.add(new Valeur(((Node)onode).selectSingleNode("./" + nom).getText(), ((Node)onode).selectSingleNode("./" + valeur).getText())); 
    174172                } 
    175                 ////system.out.println(liste); 
    176173                return liste; 
    177174        } 
    178          
     175 
    179176        private String getValue(Document doc, String xpath) { 
    180                 Node noeud = doc.selectSingleNode(xpath); 
    181                  
     177                Node noeud = (doc==null?null:doc.selectSingleNode(xpath)); 
     178 
    182179                if (noeud == null) { 
    183                         LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "pas de valeur pour : " + xpath); 
     180//                      LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "pas de valeur pour : " + xpath); 
    184181                        return ""; 
    185182                } 
    186                  
     183 
    187184                return noeud.getText(); 
    188185        } 
    189          
     186 
    190187        private Float getFloatValue(Document doc, String xpath) { 
    191188                Node noeud = doc.selectSingleNode(xpath); 
    192                  
     189 
    193190                if (noeud == null) { 
    194                         LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "pas de valeur pour : " + xpath); 
     191//                      LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "pas de valeur pour : " + xpath); 
    195192                        return new Float(0.0); 
    196193                } 
    197                  
     194 
    198195                return Float.parseFloat(noeud.getText()); 
    199196        } 
Note: See TracChangeset for help on using the changeset viewer.