annotate flys-client/src/main/java/de/intevation/flys/client/server/GaugeInfoServiceImpl.java @ 4740:fb135e1dfa35

Added 'type' attribute to <dc:variable/> element. If an optional 'type' attribute is given the result of the XPATH expression is interpreted as this type. Valid values are 'number', 'bool', 'node' and 'nodeset'. All other defaults to 'string' which also is the default if nor type is given.
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 02 Jan 2013 15:31:53 +0100
parents 52a98e1653c1
children
rev   line source
2466
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.server;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import java.util.ArrayList;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4 import java.util.List;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6 import javax.xml.xpath.XPathConstants;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8 import org.w3c.dom.Document;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9 import org.w3c.dom.Element;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 import org.w3c.dom.NodeList;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import org.apache.log4j.Logger;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import com.google.gwt.user.server.rpc.RemoteServiceServlet;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import de.intevation.artifacts.common.ArtifactNamespaceContext;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 import de.intevation.artifacts.common.utils.XMLUtils;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import de.intevation.artifacts.httpclient.exceptions.ConnectionException;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import de.intevation.artifacts.httpclient.http.HttpClient;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import de.intevation.artifacts.httpclient.http.HttpClientImpl;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 import de.intevation.flys.client.shared.exceptions.ServerException;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 import de.intevation.flys.client.client.services.GaugeInfoService;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 import de.intevation.flys.client.shared.model.Gauge;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 import de.intevation.flys.client.shared.model.GaugeImpl;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 /**
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 */
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 public class GaugeInfoServiceImpl
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 extends RemoteServiceServlet
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 implements GaugeInfoService
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 {
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 private static final Logger logger =
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 Logger.getLogger(GaugeInfoServiceImpl.class);
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 public static final String ERROR_NO_GAUGES_FOUND =
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 "error_no_gaugeinfo_found";
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 public static final String XPATH_GAUGES = "art:service/art:gauge";
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 public List<Gauge> getGaugeInfo(String rivername, String refnumber)
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 throws ServerException
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 {
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 logger.info("GaugeInfoServiceImpl.getGaugeInfo");
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 String url = getServletContext().getInitParameter("server-url");
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 Document doc = XMLUtils.newDocument();
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator(
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 doc,
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 ArtifactNamespaceContext.NAMESPACE_URI,
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 ArtifactNamespaceContext.NAMESPACE_PREFIX);
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 Element river = ec.create("river");
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 ec.addAttr(river, "name", rivername);
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 if (refnumber != null && refnumber.length() > 0) {
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 Element filter = ec.create("filter");
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 Element gauge = ec.create("gauge");
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 gauge.setTextContent(refnumber);
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 filter.appendChild(gauge);
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 river.appendChild(filter);
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 }
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 doc.appendChild(river);
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 HttpClient client = new HttpClientImpl(url);
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 try {
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 Document result = client.callService(url, "gaugeinfo", doc);
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 logger.debug("Extract gauge info now.");
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 List<Gauge> gauges = extractGauges(result);
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 if (gauges != null && gauges.size() > 0) {
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 return gauges;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 }
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 }
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 catch (ConnectionException ce) {
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 logger.error(ce, ce);
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 }
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90 throw new ServerException(ERROR_NO_GAUGES_FOUND);
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 }
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 /**
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 * Extracts all wq info objects from <i>result</i> document.
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 *
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 * @param result The document retrieved by the server.
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 *
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 * @return a list of WQInfoObjects.
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 */
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 protected List<Gauge> extractGauges(Document result)
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 throws ServerException
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 {
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 List<Gauge> gauges = new ArrayList<Gauge>();
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 NodeList list = (NodeList) XMLUtils.xpath(
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107 result,
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 XPATH_GAUGES,
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 XPathConstants.NODESET,
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 ArtifactNamespaceContext.INSTANCE);
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112 if (list == null || list.getLength() == 0) {
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113 logger.warn("No gauges found.");
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115 throw new ServerException(ERROR_NO_GAUGES_FOUND);
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116 }
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118 int num = list.getLength();
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 logger.debug("Response contains " + num + " objects.");
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 for (int i = 0; i < num; i++) {
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122 Gauge obj = buildGauge((Element) list.item(i));
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
124 if (obj != null) {
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 gauges.add(obj);
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 }
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 }
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129 logger.debug("Retrieved " + gauges.size() + " gauges.");
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131 return gauges;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132 }
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135 protected Gauge buildGauge(Element ele) {
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136 String name = ele.getAttribute("name");
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137 String lowerStr = ele.getAttribute("lower");
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138 String upperStr = ele.getAttribute("upper");
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
139
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 if (lowerStr != null && upperStr != null) {
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141 try {
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142 return new GaugeImpl(
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143 name,
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144 Double.valueOf(lowerStr),
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145 Double.valueOf(upperStr));
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
146 }
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
147 catch (NumberFormatException nfe) {
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148 logger.warn("Error while Gauge creation: " + nfe.getMessage());
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149 }
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150 }
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152 return null;
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
153 }
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154 }
52a98e1653c1 Added a new RPC service to fetch gauge information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org