Changeset 70 for ether_eccad/trunk/ECCAD_INTERFACE/WEB-INF/src/org/medias/eccad/metier/traducteur/TraducteurStat.java
- Timestamp:
- 04/26/10 19:12:49 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ether_eccad/trunk/ECCAD_INTERFACE/WEB-INF/src/org/medias/eccad/metier/traducteur/TraducteurStat.java
r68 r70 6 6 import java.util.List; 7 7 import java.util.Map; 8 import java.util.logging.Logger;9 10 8 11 9 import org.dom4j.Document; … … 24 22 public class TraducteurStat { 25 23 XmlBeanFactory xmlbean; 26 24 27 25 public TraducteurStat() { 28 26 xmlbean = SpringBeanFactory.getXmlFactory(); 29 27 } 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); 33 31 } 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) { 36 34 String xml = new String(); 37 35 InfoConnectBean infoconnect = (InfoConnectBean) xmlbean.getBean("infoConnect"); 38 36 39 37 xml = "<requete>\n"; 40 38 41 39 xml += XmlHelper.createNode("parametre", id_param); 42 40 xml += XmlHelper.createNode("produit", id_produit); 43 41 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 45 49 xml += "<connexion>\n"; 46 50 xml += XmlHelper.createNode("host", infoconnect.getDb_url()); … … 48 52 xml += XmlHelper.createNode("user", infoconnect.getDb_login()); 49 53 xml += "</connexion>\n"; 50 54 51 55 xml += "<domaine>\n"; 52 56 xml += XmlHelper.createNode("lat-max", getValeur("lat-max", criteres)); … … 55 59 xml += XmlHelper.createNode("lon-min", getValeur("lon-min", criteres)); 56 60 xml += "</domaine>\n"; 57 61 58 62 xml += "<temporel>\n"; 59 63 xml += XmlHelper.createNode("begin", getValeur("beg-date", criteres)); 60 64 xml += XmlHelper.createNode("end", getValeur("end-date", criteres)); 61 65 xml += "</temporel>\n"; 62 66 63 67 xml += "<fonction>\n"; 64 68 xml += XmlHelper.createNode("nom", fonction); … … 72 76 } 73 77 xml += "</fonction>\n"; 74 75 78 76 79 xml += "</requete>\n"; 77 //system.out.println(xml);80 // System.out.println(xml); 78 81 return xml; 79 82 } 80 83 81 84 private String getValeur(String critere, Map<String, String> criteres) { 82 85 String valeur = criteres.get(critere); … … 85 88 return valeur; 86 89 } 87 90 88 91 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");91 92 Document doc = null; 92 93 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) { 98 96 LoggerPerso.log(TraducteurStat.class, LoggerPerso.ERROR, "erreur encodage"); 99 97 } 100 101 LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "getXMLtoDocument ok :" + xml);98 99 // LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "getXMLtoDocument=\n" + xml); 102 100 String erreur = getError(doc); 103 101 104 102 if (erreur != null) 105 103 return new StatReponse(erreur); 106 107 LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "parse zone"); 104 108 105 Zone zone = new Zone(Double.parseDouble(getValue(doc, "//domaine/lat-max")), 109 106 Double.parseDouble(getValue(doc, "//domaine/lat-min")), 110 107 Double.parseDouble(getValue(doc, "//domaine/lon-max")), 111 108 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"); 114 111 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"); 117 114 String url = getValue(doc, "//image-path"); 118 115 InfoCarte info = null; 119 LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "parse info");116 // LoggerPerso.log(TraducteurStat.class, LoggerPerso.DEBUG, "parse info"); 120 117 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"); 124 121 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 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"); 129 126 Float min = getFloatValue(doc, "//extremes/mini"); 130 127 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); 132 129 StatReponse reponse = new StatReponse(zone, tempo, info, url, map, graphe); 133 130 reponse.setMaximal(max); 134 131 reponse.setMinimal(min); 135 132 136 133 Float centerValue = getFloatValue(doc, "//center/center-value"); 137 134 reponse.setCenter(centerValue); 138 135 139 136 Float centerLat = getFloatValue(doc, "//center/center-lat"); 140 137 reponse.setCenterLat(centerLat); 141 138 142 139 Float centerLon = getFloatValue(doc, "//center/center-lon"); 143 140 reponse.setCenterLon(centerLon); 144 141 142 Float globalSum = getFloatValue(doc, "//total"); 143 reponse.setGlobalSum(globalSum); 145 144 return reponse; 146 145 } 147 146 148 147 private String getError(Document doc) { 149 Node noeud = doc.selectSingleNode("//error");148 Node noeud = (doc==null?null:doc.selectSingleNode("//error")); 150 149 if (noeud == null) 151 150 return null; … … 153 152 return noeud.getText(); 154 153 } 155 154 156 155 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); 158 157 Map<String, String> map = new HashMap<String, String>(); 159 158 160 159 for (Object onode : liste_node) { 161 160 map.put(((Node)onode).selectSingleNode("./" + nom).getText(), ((Node)onode).selectSingleNode("./" + valeur).getText()); 162 161 } 163 ////system.out.println(map);164 162 return map; 165 163 } 166 164 167 165 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); 169 167 List<Valeur> liste = new LinkedList<Valeur>(); 170 168 171 169 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())); 173 171 liste.add(new Valeur(((Node)onode).selectSingleNode("./" + nom).getText(), ((Node)onode).selectSingleNode("./" + valeur).getText())); 174 172 } 175 ////system.out.println(liste);176 173 return liste; 177 174 } 178 175 179 176 private String getValue(Document doc, String xpath) { 180 Node noeud = doc.selectSingleNode(xpath);181 177 Node noeud = (doc==null?null:doc.selectSingleNode(xpath)); 178 182 179 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); 184 181 return ""; 185 182 } 186 183 187 184 return noeud.getText(); 188 185 } 189 186 190 187 private Float getFloatValue(Document doc, String xpath) { 191 188 Node noeud = doc.selectSingleNode(xpath); 192 189 193 190 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); 195 192 return new Float(0.0); 196 193 } 197 194 198 195 return Float.parseFloat(noeud.getText()); 199 196 }
Note: See TracChangeset
for help on using the changeset viewer.