annotate flys-client/src/main/java/de/intevation/flys/client/server/RiverInfoServiceImpl.java @ 4284:7a94d5e7fc3d

Write the "hidden" attribute of a style into the collection's attribute when using the theme editor. Otherwise, the next time using the theme editor, the hidden attributes that should not be changed by the user are visible.
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 29 Oct 2012 07:18:42 +0100
parents 06d9098a609a
children b6f2ecaa6704
rev   line source
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.server;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
2
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
3 import java.util.ArrayList;
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
4 import java.util.List;
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
5 import javax.xml.xpath.XPathConstants;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
6
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
7 import org.apache.log4j.Logger;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
8
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
9 import org.w3c.dom.Document;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
10 import org.w3c.dom.Element;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
11 import org.w3c.dom.NodeList;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
12
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
13 import de.intevation.artifacts.common.ArtifactNamespaceContext;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
14 import de.intevation.artifacts.common.utils.XMLUtils;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
15 import de.intevation.artifacts.httpclient.exceptions.ConnectionException;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
16 import de.intevation.artifacts.httpclient.http.HttpClient;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
17 import de.intevation.artifacts.httpclient.http.HttpClientImpl;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
18
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
19 import de.intevation.flys.client.client.services.RiverInfoService;
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
20 import de.intevation.flys.client.shared.exceptions.ServerException;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
21 import de.intevation.flys.client.shared.model.DefaultGaugeInfo;
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
22 import de.intevation.flys.client.shared.model.DefaultMeasurementStation;
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
23 import de.intevation.flys.client.shared.model.DefaultRiverInfo;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
24 import de.intevation.flys.client.shared.model.GaugeInfo;
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
25 import de.intevation.flys.client.shared.model.MeasurementStation;
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
26 import de.intevation.flys.client.shared.model.RiverInfo;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
27
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
28
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
29 /**
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
30 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a>
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
31 */
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
32 public class RiverInfoServiceImpl
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
33 extends RemoteServiceServlet
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
34 implements RiverInfoService
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
35 {
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
36 private static final Logger logger =
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
37 Logger.getLogger(RiverInfoServiceImpl.class);
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
38
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
39 public static final String ERROR_NO_RIVER_INFO_FOUND =
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
40 "error_no_riverinfo_found";
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
41
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
42 private static final String XPATH_RIVER =
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
43 "/art:river-info/art:river";
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
44
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
45 private static final String XPATH_STATIONS =
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
46 "/art:river-info/art:measurement-stations/art:measurement-station";
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
47
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
48 private static final String XPATH_GAUGES = "/art:river-info/art:gauges/art:gauge";
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
49
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
50 public RiverInfo getGauges(String river) throws ServerException {
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
51 logger.info("RiverInfoServiceImpl.getRiverInfo");
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
52
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
53 String url = getServletContext().getInitParameter("server-url");
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
54
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
55 Document doc = XMLUtils.newDocument();
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
56
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
57 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator(
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
58 doc,
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
59 ArtifactNamespaceContext.NAMESPACE_URI,
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
60 ArtifactNamespaceContext.NAMESPACE_PREFIX);
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
61
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
62 Element riverele = ec.create("river");
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
63 riverele.setTextContent(river);
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
64
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
65 doc.appendChild(riverele);
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
66
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
67 HttpClient client = new HttpClientImpl(url);
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
68
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
69 try {
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
70 Document result = client.callService(url, "gaugeoverviewinfo", doc);
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
71
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
72 DefaultRiverInfo riverinfo = getRiverInfo(result);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
73 List<GaugeInfo>gauges = createGauges(result, riverinfo.getName(),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
74 riverinfo.isKmUp(), riverinfo.getWstUnit());
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
75
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
76
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
77 riverinfo.setGauges(gauges);
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
78
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
79 logger.debug("Finished RiverInfoService.getGauges.");
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
80
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
81 return riverinfo;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
82 }
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
83 catch (ConnectionException ce) {
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
84 logger.error(ce, ce);
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
85 }
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
86
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
87 logger.warn("No gauge found");
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
88 throw new ServerException(ERROR_NO_RIVER_INFO_FOUND);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
89 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
90
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
91 public RiverInfo getMeasurementStations(String river) throws ServerException {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
92 logger.info("RiverInfoServiceImpl.getMeasurementStations");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
93
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
94 String url = getServletContext().getInitParameter("server-url");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
95
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
96 Document doc = XMLUtils.newDocument();
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
97
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
98 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
99 doc,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
100 ArtifactNamespaceContext.NAMESPACE_URI,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
101 ArtifactNamespaceContext.NAMESPACE_PREFIX);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
102
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
103 Element riverele = ec.create("river");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
104 riverele.setTextContent(river);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
105
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
106 doc.appendChild(riverele);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
107
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
108 HttpClient client = new HttpClientImpl(url);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
109
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
110 try {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
111 Document result = client.callService(url, "measurementstationinfo", doc);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
112
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
113 DefaultRiverInfo riverinfo = getRiverInfo(result);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
114 List<MeasurementStation> mstations = createMeasurementStations(
4266
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
115 result, riverinfo.getName(), riverinfo.isKmUp());
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
116
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
117 riverinfo.setMeasurementStations(mstations);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
118
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
119 logger.debug("Finished MeasurementStationInfoService.");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
120
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
121 return riverinfo;
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
122 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
123 catch (ConnectionException ce) {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
124 logger.error(ce, ce);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
125 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
126
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
127 logger.warn("No measurement station found");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
128 throw new ServerException(ERROR_NO_RIVER_INFO_FOUND);
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
129 }
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
130
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
131 /**
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
132 * Avoids NullPointerException when parsing double value
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
133 */
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
134 private Double parseDouble(String value) {
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
135 if (value == null || value.isEmpty()) {
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
136 return null;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
137 }
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
138 try {
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
139 return Double.valueOf(value);
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
140 }
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
141 catch(NumberFormatException e) {
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
142 logger.error(e, e);
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
143 return null;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
144 }
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
145 }
3843
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
146
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
147 private Long parseLong(String value) {
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
148 if (value == null || value.isEmpty()) {
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
149 return null;
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
150 }
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
151 try {
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
152 return Long.valueOf(value);
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
153 }
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
154 catch(NumberFormatException e) {
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
155 logger.error(e, e);
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
156 return null;
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
157 }
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
158 }
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
159
4266
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
160 private Integer parseInteger(String value) {
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
161 if (value == null || value.isEmpty()) {
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
162 return null;
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
163 }
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
164 try {
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
165 return Integer.valueOf(value);
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
166 }
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
167 catch(NumberFormatException e) {
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
168 logger.error(e, e);
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
169 return null;
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
170 }
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
171 }
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
172
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
173 private List<MeasurementStation> createMeasurementStations(
4266
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
174 Document result, String rivername, boolean kmup) {
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
175
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
176 NodeList stationnodes = (NodeList) XMLUtils.xpath(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
177 result,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
178 XPATH_STATIONS,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
179 XPathConstants.NODESET,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
180 ArtifactNamespaceContext.INSTANCE);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
181
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
182 int num = stationnodes == null ? 0 : stationnodes.getLength();
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
183
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
184 ArrayList<MeasurementStation> mstations = new ArrayList<MeasurementStation>(num);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
185
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
186 if (num == 0) {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
187 logger.warn("No measurement station found.");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
188 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
189 else {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
190 logger.debug("Found " + num + " measurement stations.");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
191
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
192 for (int i = 0; i < num; i++) {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
193 Element stationele = (Element)stationnodes.item(i);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
194
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
195 String mname = stationele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
196 ArtifactNamespaceContext.NAMESPACE_URI, "name");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
197 String mstart = stationele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
198 ArtifactNamespaceContext.NAMESPACE_URI, "start");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
199 String mend = stationele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
200 ArtifactNamespaceContext.NAMESPACE_URI, "end");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
201 String mstation = stationele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
202 ArtifactNamespaceContext.NAMESPACE_URI, "station");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
203 String mtype = stationele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
204 ArtifactNamespaceContext.NAMESPACE_URI, "type");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
205 String riverside = stationele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
206 ArtifactNamespaceContext.NAMESPACE_URI, "riverside");
4266
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
207 String mid = stationele.getAttributeNS(
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
208 ArtifactNamespaceContext.NAMESPACE_URI, "id");
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
209 String moperator = stationele.getAttributeNS(
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
210 ArtifactNamespaceContext.NAMESPACE_URI, "operator");
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
211
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
212 logger.debug("Found measurement station with name " + mname);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
213
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
214 MeasurementStation station = new DefaultMeasurementStation(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
215 rivername,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
216 mname,
4266
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
217 parseInteger(mid),
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
218 parseDouble(mstation),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
219 parseDouble(mstart),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
220 parseDouble(mend),
4266
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
221 kmup,
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
222 riverside,
4266
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
223 mtype,
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
224 moperator
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
225 );
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
226
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
227 mstations.add(station);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
228 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
229 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
230 return mstations;
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
231 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
232
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
233 private List<GaugeInfo> createGauges(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
234 Document result, String rivername, Boolean kmup, String rwstunit) {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
235 NodeList gaugenodes = (NodeList) XMLUtils.xpath(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
236 result,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
237 XPATH_GAUGES,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
238 XPathConstants.NODESET,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
239 ArtifactNamespaceContext.INSTANCE);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
240
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
241 int num = gaugenodes == null ? 0 : gaugenodes.getLength();
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
242
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
243 ArrayList<GaugeInfo> gauges = new ArrayList<GaugeInfo>(num);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
244
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
245 if (num == 0) {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
246 logger.warn("No gauge info found.");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
247 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
248 else {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
249 logger.debug("Found " + num + " gauges.");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
251 for (int i = 0; i < num; i++) {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
252 Element gaugeele = (Element)gaugenodes.item(i);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
253
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
254 String gname = gaugeele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
255 ArtifactNamespaceContext.NAMESPACE_URI, "name");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
256 String gstart = gaugeele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
257 ArtifactNamespaceContext.NAMESPACE_URI, "start");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
258 String gend = gaugeele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
259 ArtifactNamespaceContext.NAMESPACE_URI, "end");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
260 String gdatum = gaugeele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
261 ArtifactNamespaceContext.NAMESPACE_URI, "datum");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
262 String gaeo = gaugeele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
263 ArtifactNamespaceContext.NAMESPACE_URI, "aeo");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
264 String gminq = gaugeele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
265 ArtifactNamespaceContext.NAMESPACE_URI, "minq");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
266 String gminw = gaugeele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
267 ArtifactNamespaceContext.NAMESPACE_URI, "minw");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
268 String gmaxq = gaugeele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
269 ArtifactNamespaceContext.NAMESPACE_URI, "maxq");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
270 String gmaxw = gaugeele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
271 ArtifactNamespaceContext.NAMESPACE_URI, "maxw");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
272 String gstation = gaugeele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
273 ArtifactNamespaceContext.NAMESPACE_URI, "station");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
274 String gofficial = gaugeele.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
275 ArtifactNamespaceContext.NAMESPACE_URI, "official");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
276
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
277 logger.debug("Found gauge with name " + gname);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
278
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
279 GaugeInfo gaugeinfo = new DefaultGaugeInfo(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
280 rivername,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
281 gname,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
282 kmup,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
283 parseDouble(gstation),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
284 parseDouble(gstart),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
285 parseDouble(gend),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
286 parseDouble(gdatum),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
287 parseDouble(gaeo),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
288 parseDouble(gminq),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
289 parseDouble(gmaxq),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
290 parseDouble(gminw),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
291 parseDouble(gmaxw),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
292 rwstunit,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
293 parseLong(gofficial)
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
294 );
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
295
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
296 gauges.add(gaugeinfo);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
297 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
298 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
299 return gauges;
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
300 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
301
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
302 private DefaultRiverInfo getRiverInfo(Document result) {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
303 Element riverresp = (Element) XMLUtils.xpath(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
304 result,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
305 XPATH_RIVER,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
306 XPathConstants.NODE,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
307 ArtifactNamespaceContext.INSTANCE);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
308
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
309 String rname = riverresp.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
310 ArtifactNamespaceContext.NAMESPACE_URI, "name");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
311 String rkmup = riverresp.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
312 ArtifactNamespaceContext.NAMESPACE_URI, "kmup");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
313 String rstart = riverresp.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
314 ArtifactNamespaceContext.NAMESPACE_URI, "start");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
315 String rend = riverresp.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
316 ArtifactNamespaceContext.NAMESPACE_URI, "end");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
317 String rwstunit = riverresp.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
318 ArtifactNamespaceContext.NAMESPACE_URI, "wstunit");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
319 String rminq = riverresp.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
320 ArtifactNamespaceContext.NAMESPACE_URI, "minq");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
321 String rmaxq = riverresp.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
322 ArtifactNamespaceContext.NAMESPACE_URI, "maxq");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
323 String rofficial = riverresp.getAttributeNS(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
324 ArtifactNamespaceContext.NAMESPACE_URI, "official");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
325
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
326 logger.debug("River is " + rname);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
327
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
328 boolean kmup = rkmup.equalsIgnoreCase("true");
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
329 DefaultRiverInfo riverinfo = new DefaultRiverInfo(
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
330 rname,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
331 kmup,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
332 parseDouble(rstart),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
333 parseDouble(rend),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
334 rwstunit,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
335 parseDouble(rminq),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
336 parseDouble(rmaxq),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
337 parseLong(rofficial)
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
338 );
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
339
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
340 return riverinfo;
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
341 }
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
342 }

http://dive4elements.wald.intevation.org