Mercurial > dive4elements > river
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 } |