annotate flys-client/src/main/java/de/intevation/flys/client/server/RiverInfoServiceImpl.java @ 4378:8eb1d6dc96a9

Add chart generation for fixings in bed differences generators If matching fixanalysis data is loaded via the datacage the bed difference generators are now able to display graphs for the additonal data.
author Björn Ricks <bjoern.ricks@intevation.de>
date Fri, 02 Nov 2012 15:50:35 +0100
parents 87362ba26c72
children 45d310b41c23
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
4288
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
3 import java.text.DateFormat;
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
4 import java.text.ParseException;
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
5 import java.util.ArrayList;
4288
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
6 import java.util.Date;
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
7 import java.util.List;
4288
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
8 import java.util.Locale;
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
9 import javax.xml.xpath.XPathConstants;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
10
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
11 import org.apache.log4j.Logger;
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 org.w3c.dom.Document;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
14 import org.w3c.dom.Element;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
15 import org.w3c.dom.NodeList;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
16
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
17 import de.intevation.artifacts.common.ArtifactNamespaceContext;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
18 import de.intevation.artifacts.common.utils.XMLUtils;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
19 import de.intevation.artifacts.httpclient.exceptions.ConnectionException;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
20 import de.intevation.artifacts.httpclient.http.HttpClient;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
21 import de.intevation.artifacts.httpclient.http.HttpClientImpl;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
22
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
23 import de.intevation.flys.client.client.services.RiverInfoService;
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
24 import de.intevation.flys.client.shared.exceptions.ServerException;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
25 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
26 import de.intevation.flys.client.shared.model.DefaultMeasurementStation;
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
27 import de.intevation.flys.client.shared.model.DefaultRiverInfo;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
28 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
29 import de.intevation.flys.client.shared.model.MeasurementStation;
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
30 import de.intevation.flys.client.shared.model.RiverInfo;
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
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
33 /**
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
34 * @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
35 */
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
36 public class RiverInfoServiceImpl
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
37 extends RemoteServiceServlet
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
38 implements RiverInfoService
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
39 {
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
40 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
41 Logger.getLogger(RiverInfoServiceImpl.class);
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
42
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
43 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
44 "error_no_riverinfo_found";
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
45
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
46 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
47 "/art:river-info/art:river";
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
48
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
49 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
50 "/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
51
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
52 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
53
4288
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
54 public static final DateFormat DATE_FORMAT = DateFormat.getDateInstance(
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
55 DateFormat.SHORT, Locale.GERMANY);
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
56
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
57 public RiverInfo getGauges(String river) throws ServerException {
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
58 logger.info("RiverInfoServiceImpl.getRiverInfo");
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
59
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
60 String url = getServletContext().getInitParameter("server-url");
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 Document doc = XMLUtils.newDocument();
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
63
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
64 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator(
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
65 doc,
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
66 ArtifactNamespaceContext.NAMESPACE_URI,
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
67 ArtifactNamespaceContext.NAMESPACE_PREFIX);
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 Element riverele = ec.create("river");
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
70 riverele.setTextContent(river);
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
71
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
72 doc.appendChild(riverele);
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
73
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
74 HttpClient client = new HttpClientImpl(url);
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 try {
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
77 Document result = client.callService(url, "gaugeoverviewinfo", doc);
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 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
80 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
81 riverinfo.isKmUp(), riverinfo.getWstUnit());
3713
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
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
84 riverinfo.setGauges(gauges);
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
85
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
86 logger.debug("Finished RiverInfoService.getGauges.");
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
87
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
88 return riverinfo;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
89 }
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
90 catch (ConnectionException ce) {
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
91 logger.error(ce, ce);
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
92 }
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
93
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
94 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
95 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
96 }
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 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
99 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
100
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
101 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
102
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
103 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
104
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
105 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
106 doc,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
107 ArtifactNamespaceContext.NAMESPACE_URI,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
108 ArtifactNamespaceContext.NAMESPACE_PREFIX);
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 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
111 riverele.setTextContent(river);
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 doc.appendChild(riverele);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
114
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
115 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
116
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
117 try {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
118 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
119
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
120 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
121 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
122 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
123
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
124 riverinfo.setMeasurementStations(mstations);
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 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
127
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
128 return riverinfo;
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
129 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
130 catch (ConnectionException ce) {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
131 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
132 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
133
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
134 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
135 throw new ServerException(ERROR_NO_RIVER_INFO_FOUND);
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
136 }
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 /**
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
139 * Avoids NullPointerException when parsing double 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 private Double parseDouble(String value) {
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
142 if (value == null || value.isEmpty()) {
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 try {
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
146 return Double.valueOf(value);
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
147 }
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
148 catch(NumberFormatException e) {
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
149 logger.error(e, e);
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
150 return null;
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
151 }
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
152 }
3843
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 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
155 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
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 try {
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
159 return Long.valueOf(value);
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
160 }
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
161 catch(NumberFormatException e) {
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
162 logger.error(e, e);
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
163 return null;
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
164 }
8e169e4e1b57 Add the official gauge number to the GaugeInfo class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3838
diff changeset
165 }
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
166
4266
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
167 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
168 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
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 try {
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
172 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
173 }
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
174 catch(NumberFormatException e) {
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
175 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
176 return null;
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
177 }
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
178 }
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
179
4288
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
180 private Date parseDate(String value) {
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
181 if (value == null || value.isEmpty()) {
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
182 return null;
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
183 }
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
184 try {
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
185 return DATE_FORMAT.parse(value);
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
186 }
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
187 catch(ParseException e) {
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
188 logger.error(e, e);
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
189 return null;
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
190 }
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
191 }
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
192
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
193 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
194 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
195
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
196 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
197 result,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
198 XPATH_STATIONS,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
199 XPathConstants.NODESET,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
200 ArtifactNamespaceContext.INSTANCE);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
201
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
202 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
203
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
204 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
205
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
206 if (num == 0) {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
207 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
208 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
209 else {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
210 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
211
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
212 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
213 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
214
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
215 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
216 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
217 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
218 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
219 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
220 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
221 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
222 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
223 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
224 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
225 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
226 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
227 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
228 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
229 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
230 ArtifactNamespaceContext.NAMESPACE_URI, "operator");
4288
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
231 String mstarttime = stationele.getAttributeNS(
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
232 ArtifactNamespaceContext.NAMESPACE_URI, "starttime");
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
233 String mstoptime = stationele.getAttributeNS(
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
234 ArtifactNamespaceContext.NAMESPACE_URI, "stoptime");
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
235
4326
87362ba26c72 Extract the gauge name from the riverservice response
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4288
diff changeset
236 String gaugename = null;
87362ba26c72 Extract the gauge name from the riverservice response
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4288
diff changeset
237
87362ba26c72 Extract the gauge name from the riverservice response
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4288
diff changeset
238 Element gaugeele = (Element)stationele.getFirstChild();
87362ba26c72 Extract the gauge name from the riverservice response
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4288
diff changeset
239 if (gaugeele != null) {
87362ba26c72 Extract the gauge name from the riverservice response
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4288
diff changeset
240 gaugename = gaugeele.getAttributeNS(
87362ba26c72 Extract the gauge name from the riverservice response
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4288
diff changeset
241 ArtifactNamespaceContext.NAMESPACE_URI, "name");
87362ba26c72 Extract the gauge name from the riverservice response
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4288
diff changeset
242 }
87362ba26c72 Extract the gauge name from the riverservice response
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4288
diff changeset
243
87362ba26c72 Extract the gauge name from the riverservice response
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4288
diff changeset
244
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
245 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
246
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
247 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
248 rivername,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
249 mname,
4266
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
250 parseInteger(mid),
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
251 parseDouble(mstation),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
252 parseDouble(mstart),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
253 parseDouble(mend),
4266
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
254 kmup,
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
255 riverside,
4266
06d9098a609a Add id, kmup and operator to MeasurementStation in RiverInfoServiceImpl
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4250
diff changeset
256 mtype,
4288
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
257 moperator,
b6f2ecaa6704 Parse start and end time of an observation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4266
diff changeset
258 parseDate(mstarttime),
4326
87362ba26c72 Extract the gauge name from the riverservice response
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4288
diff changeset
259 parseDate(mstoptime),
87362ba26c72 Extract the gauge name from the riverservice response
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4288
diff changeset
260 gaugename
4250
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
261 );
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
262
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
263 mstations.add(station);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
264 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
265 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
266 return mstations;
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
267 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
268
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
269 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
270 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
271 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
272 result,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
273 XPATH_GAUGES,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
274 XPathConstants.NODESET,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
275 ArtifactNamespaceContext.INSTANCE);
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 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
278
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
279 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
280
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
281 if (num == 0) {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
282 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
283 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
284 else {
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
285 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
286
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
287 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
288 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
289
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
290 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
291 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
292 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
293 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
294 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
295 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
296 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
297 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
298 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
299 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
300 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
301 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
302 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
303 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
304 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
305 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
306 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
307 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
308 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
309 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
310 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
311 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
312
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
313 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
314
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
315 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
316 rivername,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
317 gname,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
318 kmup,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
319 parseDouble(gstation),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
320 parseDouble(gstart),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
321 parseDouble(gend),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
322 parseDouble(gdatum),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
323 parseDouble(gaeo),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
324 parseDouble(gminq),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
325 parseDouble(gmaxq),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
326 parseDouble(gminw),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
327 parseDouble(gmaxw),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
328 rwstunit,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
329 parseLong(gofficial)
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
330 );
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
331
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
332 gauges.add(gaugeinfo);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
333 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
334 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
335 return gauges;
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
336 }
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
337
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
338 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
339 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
340 result,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
341 XPATH_RIVER,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
342 XPathConstants.NODE,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
343 ArtifactNamespaceContext.INSTANCE);
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
344
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
345 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
346 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
347 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
348 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
349 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
350 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
351 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
352 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
353 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
354 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
355 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
356 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
357 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
358 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
359 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
360 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
361
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
362 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
363
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
364 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
365 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
366 rname,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
367 kmup,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
368 parseDouble(rstart),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
369 parseDouble(rend),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
370 rwstunit,
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
371 parseDouble(rminq),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
372 parseDouble(rmaxq),
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
373 parseLong(rofficial)
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
374 );
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
375
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
376 return riverinfo;
ef154fbf58f1 Add method to get the MeasurementStations from the RiverInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3974
diff changeset
377 }
3713
79ad33f41977 Implement a gauge service
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
378 }

http://dive4elements.wald.intevation.org