annotate flys-client/src/main/java/de/intevation/flys/client/server/DistanceInfoServiceImpl.java @ 800:95cc560ce7c4

Added map controls for digitizing and removing barriers. flys-client/trunk@2321 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 12 Jul 2011 13:43:49 +0000
parents 78907f0fb939
children ab8eb2f544f2
rev   line source
219
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.server;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import java.util.ArrayList;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4 import java.util.List;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6 import org.w3c.dom.Document;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 import org.w3c.dom.Element;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8 import org.w3c.dom.NodeList;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 import com.google.gwt.user.server.rpc.RemoteServiceServlet;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import de.intevation.artifacts.common.ArtifactNamespaceContext;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import de.intevation.artifacts.common.utils.XMLUtils;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import de.intevation.artifacts.httpclient.exceptions.ConnectionException;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import de.intevation.artifacts.httpclient.http.HttpClient;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 import de.intevation.artifacts.httpclient.http.HttpClientImpl;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import de.intevation.flys.client.shared.exceptions.ServerException;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import de.intevation.flys.client.client.services.DistanceInfoService;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import de.intevation.flys.client.shared.model.DistanceInfoObject;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 import de.intevation.flys.client.shared.model.DistanceInfoObjectImpl;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 /**
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 */
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 public class DistanceInfoServiceImpl
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 extends RemoteServiceServlet
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 implements DistanceInfoService
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 {
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 public static final String ERROR_NO_DISTANCEINFO_FOUND =
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 "error_no_distanceinfo_found";
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 public static final String XPATH_DISTANCES = "art:distances/art:distance";
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37
229
924da6695800 Each service is now called with the name of the current locale to set the request object's locale manually in the HttpClient.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 219
diff changeset
38 public DistanceInfoObject[] getDistanceInfo(
924da6695800 Each service is now called with the name of the current locale to set the request object's locale manually in the HttpClient.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 219
diff changeset
39 String url,
924da6695800 Each service is now called with the name of the current locale to set the request object's locale manually in the HttpClient.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 219
diff changeset
40 String locale,
924da6695800 Each service is now called with the name of the current locale to set the request object's locale manually in the HttpClient.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 219
diff changeset
41 String river)
219
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 throws ServerException
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 {
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 System.out.println("DistanceInfoServiceImpl.getDistanceInfo");
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 Document doc = XMLUtils.newDocument();
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator(
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 doc,
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 ArtifactNamespaceContext.NAMESPACE_URI,
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 ArtifactNamespaceContext.NAMESPACE_PREFIX);
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 Element riverEl = ec.create("river");
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 riverEl.setTextContent(river);
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 doc.appendChild(riverEl);
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58
229
924da6695800 Each service is now called with the name of the current locale to set the request object's locale manually in the HttpClient.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 219
diff changeset
59 HttpClient client = new HttpClientImpl(url, locale);
219
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 try {
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62 Document result = client.callService(url, "distanceinfo", doc);
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 System.out.println("Extract distance info objects now.");
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 DistanceInfoObject[] objects = extractDistanceInfoObjects(result);
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 if (objects != null && objects.length > 0) {
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 return objects;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 }
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 }
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 catch (ConnectionException ce) {
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 System.err.println(ce.getLocalizedMessage());
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 }
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 throw new ServerException(ERROR_NO_DISTANCEINFO_FOUND);
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 }
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 /**
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 * Extracts all distance info objects from <i>result</i> document.
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 *
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 * @param result The document retrieved by the server.
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 *
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 * @return a list of DistanceInfoObjects.
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 */
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 protected DistanceInfoObject[] extractDistanceInfoObjects(Document result)
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 throws ServerException
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 {
569
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
89 NodeList list = result.getElementsByTagName("distance");
219
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 if (list == null || list.getLength() == 0) {
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 System.err.println("No distance info found.");
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 throw new ServerException(ERROR_NO_DISTANCEINFO_FOUND);
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 }
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 int num = list.getLength();
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 System.out.println("Response contains " + num + " objects.");
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 List<DistanceInfoObject> objects =
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 new ArrayList<DistanceInfoObject>(num);
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 for (int i = 0; i < num; i++) {
569
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
103 DistanceInfoObject obj = buildDistanceInfoObject(
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
104 (Element)list.item(i));
219
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 if (obj != null) {
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107 objects.add(obj);
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 }
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 }
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111 System.out.println("Retrieved " + objects.size() + " distances.");
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113 return (DistanceInfoObject[])
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114 objects.toArray(new DistanceInfoObject[num]);
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115 }
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118 /**
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 * Extracts information for a single distance info object and intializes an
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 * DistanceInfoObject with them.
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 *
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122 * @param node The node that contains the information.
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123 *
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
124 * @return a valid DistanceInfoObject.
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 */
569
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
126 protected DistanceInfoObject buildDistanceInfoObject(Element node) {
219
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127
569
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
128 String desc = node.getAttribute("description").trim();
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
129 String from = node.getAttribute("from").trim();
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
130 String to = node.getAttribute("to").trim();
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
131 String riverside = node.getAttribute("riverside").trim();
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
132 String bottom = node.getAttribute("bottom").trim();
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
133 String top = node.getAttribute("top").trim();
567
d9fc58e30a53 Loop through 'Unterkante' 'Oberkante' from service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 229
diff changeset
134
569
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
135 if (desc.length() > 0 && from.length() > 0) {
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
136 try {
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
137 Double f = new Double(from);
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
138 Double t = to .length() > 0 ? new Double(to) : null;
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
139 Double b = bottom.length() > 0 ? new Double(bottom) : null;
c7301a701da9 DistanceInfoService: Got rid of namespace. Use DOM instead of XPath.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 567
diff changeset
140 Double tp = top .length() > 0 ? new Double(top) : null;
567
d9fc58e30a53 Loop through 'Unterkante' 'Oberkante' from service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 229
diff changeset
141
d9fc58e30a53 Loop through 'Unterkante' 'Oberkante' from service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 229
diff changeset
142 return new DistanceInfoObjectImpl(desc, f, t, riverside, b, tp);
219
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143 }
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144 catch (NumberFormatException nfe) {
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145 System.err.println(nfe.getLocalizedMessage());
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
146 }
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
147 }
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149 System.err.println("Invalid distance info object found.");
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151 return null;
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152 }
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
153 }
7523faf567e5 Implemented a service to fetch distance information of a river from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org