annotate flys-client/src/main/java/de/intevation/flys/client/server/GCServiceImpl.java @ 1416:16f19f12a962

Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well. flys-client/trunk@3306 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 23 Nov 2011 09:45:22 +0000
parents 3484cbfaf369
children 42d6cf6e10b7
rev   line source
1408
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.server;
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import java.io.InputStream;
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4 import java.io.IOException;
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 import java.net.MalformedURLException;
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6 import java.net.URL;
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 import java.net.URLConnection;
1411
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
8 import java.util.ArrayList;
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
9 import java.util.List;
1408
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import javax.xml.xpath.XPathConstants;
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import com.google.gwt.user.server.rpc.RemoteServiceServlet;
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import org.w3c.dom.Document;
1409
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
16 import org.w3c.dom.Node;
1411
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
17 import org.w3c.dom.NodeList;
1408
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import org.apache.log4j.Logger;
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import de.intevation.artifacts.common.utils.XMLUtils;
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 import de.intevation.flys.client.shared.exceptions.ServerException;
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 import de.intevation.flys.client.shared.model.Capabilities;
1409
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
25 import de.intevation.flys.client.shared.model.ContactInformation;
1411
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
26 import de.intevation.flys.client.shared.model.WMSLayer;
1408
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 import de.intevation.flys.client.client.services.GCService;
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 /**
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 */
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 public class GCServiceImpl
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 extends RemoteServiceServlet
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 implements GCService
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 {
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 public static final String ERR_GC_REQUEST_FAILED =
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 "error_gc_req_failed";
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 public static final String ERR_GC_DOC_NOT_VALID =
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 "error_gc_doc_not_valid";
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 public static final String ERR_MALFORMED_URL =
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 "error_malformed_url";
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45
1416
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
46 public static final String XPATH_WMS_CAPS =
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
47 "/WMS_Capabilities";
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
48
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
49 public static final String XPATH_WMT_CAPS =
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
50 "/WMT_MS_Capabilities";
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
51
1409
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
52 public static final String XPATH_TITLE =
1416
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
53 "Service/Title/text()";
1409
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
54
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
55 public static final String XPATH_ONLINE_RESOURCE =
1416
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
56 "Service/OnlineResource/@href";
1409
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
57
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
58 public static final String XPATH_CONTACT_INFORMATION =
1416
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
59 "Service/ContactInformation";
1409
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
60
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
61 public static final String XPATH_CI_PERSON =
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
62 "ContactPersonPrimary/ContactPerson/text()";
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
63
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
64 public static final String XPATH_CI_ORGANIZATION =
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
65 "ContactPersonPrimary/ContactOrganization/text()";
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
66
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
67 public static final String XPATH_CI_ADDRESS =
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
68 "ContactAddress/Address/text()";
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
69
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
70 public static final String XPATH_CI_CITY =
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
71 "ContactAddress/City/text()";
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
72
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
73 public static final String XPATH_CI_POSTCODE =
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
74 "ContactAddress/PostCode/text()";
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
75
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
76 public static final String XPATH_CI_PHONE =
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
77 "ContactVoiceTelephone/text()";
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
78
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
79 public static final String XPATH_CI_EMAIL =
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
80 "ContactElectronicMailAddress/text()";
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
81
1408
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 public static final String XPATH_FEES =
1416
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
83 "Service/Fees/text()";
1408
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 public static final String XPATH_ACCESS_CONSTRAINTS =
1416
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
86 "Service/AccessConstraints/text()";
1408
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87
1411
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
88 public static final String XPATH_LAYERS =
1416
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
89 "Capability/Layer";
1411
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
90
1408
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 private Logger logger = Logger.getLogger(GCServiceImpl.class);
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 public Capabilities query(String path)
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 throws ServerException
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 {
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 logger.info("GCServiceImpl.query");
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 try {
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 URL url = new URL(path);
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 logger.debug("Open connection to url: " + path);
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 URLConnection conn = url.openConnection();
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 conn.connect();
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 InputStream is = conn.getInputStream();
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 return parseCapabilitiesResponse(is);
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111 }
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112 catch (MalformedURLException mue) {
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113 logger.warn(mue, mue);
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114 throw new ServerException(ERR_MALFORMED_URL);
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115 }
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116 catch (IOException ioe) {
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117 logger.warn(ioe, ioe);
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118 }
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 throw new ServerException(ERR_GC_REQUEST_FAILED);
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 }
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
124 protected Capabilities parseCapabilitiesResponse(InputStream is)
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 throws ServerException
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 {
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 logger.debug("GCServiceImpl.parseCapabilitiesResponse");
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129 Document doc = XMLUtils.parseDocument(is, false);
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131 if (doc == null) {
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132 throw new ServerException(ERR_GC_DOC_NOT_VALID);
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133 }
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134
1416
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
135 Node capabilities = getCapabilitiesNode(doc);
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
136
1409
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
137 String title = (String) XMLUtils.xpath(
1416
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
138 capabilities,
1409
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
139 XPATH_TITLE,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
140 XPathConstants.STRING);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
141
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
142 String onlineResource = (String) XMLUtils.xpath(
1416
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
143 capabilities,
1409
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
144 XPATH_ONLINE_RESOURCE,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
145 XPathConstants.STRING);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
146
1408
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
147 String fees = (String) XMLUtils.xpath(
1416
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
148 capabilities,
1408
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149 XPATH_FEES,
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150 XPathConstants.STRING);
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152 String accessConstraints = (String) XMLUtils.xpath(
1416
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
153 capabilities,
1408
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154 XPATH_ACCESS_CONSTRAINTS,
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155 XPathConstants.STRING);
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
156
1409
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
157 Node contactInformation = (Node) XMLUtils.xpath(
1416
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
158 capabilities,
1409
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
159 XPATH_CONTACT_INFORMATION,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
160 XPathConstants.NODE);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
161
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
162 ContactInformation ci = parseContactInformation(contactInformation);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
163
1408
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
164 logger.debug("Found fees: " + fees);
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
165 logger.debug("Found access constraints: " + accessConstraints);
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
166
1411
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
167 NodeList layerNodes = (NodeList) XMLUtils.xpath(
1416
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
168 capabilities,
1411
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
169 XPATH_LAYERS,
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
170 XPathConstants.NODESET);
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
171
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1411
diff changeset
172 List<WMSLayer> layers = parseLayers(layerNodes, onlineResource);
1408
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
173
1409
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
174 return new Capabilities(
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
175 title,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
176 onlineResource,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
177 ci,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
178 fees,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
179 accessConstraints,
1411
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
180 layers);
1409
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
181 }
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
182
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
183
1416
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
184 protected Node getCapabilitiesNode(Document doc)
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
185 throws ServerException {
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
186 Node capabilities = (Node) XMLUtils.xpath(
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
187 doc,
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
188 XPATH_WMS_CAPS,
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
189 XPathConstants.NODE);
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
190
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
191 if (capabilities == null) {
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
192 logger.info("No '/WMS_Capabilities' node found.");
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
193 logger.info("Try to find a '/WMT_MS_Capabilities' node.");
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
194
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
195 capabilities = (Node) XMLUtils.xpath(
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
196 doc,
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
197 XPATH_WMT_CAPS,
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
198 XPathConstants.NODE);
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
199 }
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
200
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
201 if (capabilities == null) {
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
202 throw new ServerException(ERR_GC_DOC_NOT_VALID);
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
203 }
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
204
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
205 return capabilities;
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
206 }
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
207
16f19f12a962 Improved parsing of Capabilities document - parse '/WMT_MS_Capabilities' as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1414
diff changeset
208
1409
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
209 protected ContactInformation parseContactInformation(Node node) {
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
210 String person = (String) XMLUtils.xpath(
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
211 node,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
212 XPATH_CI_PERSON,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
213 XPathConstants.STRING);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
214
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
215 String organization = (String) XMLUtils.xpath(
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
216 node,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
217 XPATH_CI_ORGANIZATION,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
218 XPathConstants.STRING);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
219
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
220 String address = (String) XMLUtils.xpath(
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
221 node,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
222 XPATH_CI_ADDRESS,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
223 XPathConstants.STRING);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
224
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
225 String postcode = (String) XMLUtils.xpath(
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
226 node,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
227 XPATH_CI_POSTCODE,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
228 XPathConstants.STRING);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
229
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
230 String city = (String) XMLUtils.xpath(
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
231 node,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
232 XPATH_CI_CITY,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
233 XPathConstants.STRING);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
234
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
235 String phone = (String) XMLUtils.xpath(
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
236 node,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
237 XPATH_CI_PHONE,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
238 XPathConstants.STRING);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
239
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
240 String email = (String) XMLUtils.xpath(
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
241 node,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
242 XPATH_CI_EMAIL,
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
243 XPathConstants.STRING);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
244
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
245 ContactInformation ci = new ContactInformation();
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
246 ci.setPerson(person);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
247 ci.setOrganization(organization);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
248 ci.setAddress(address);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
249 ci.setPostcode(postcode);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
250 ci.setCity(city);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
251 ci.setPhone(phone);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
252 ci.setEmail(email);
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
253
ec6e4dad1279 Read and display all FLYS relevant information of Capabilities documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1408
diff changeset
254 return ci;
1408
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
255 }
1411
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
256
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
257
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1411
diff changeset
258 /**
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1411
diff changeset
259 * @param layersNode
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1411
diff changeset
260 * @param onlineResource
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1411
diff changeset
261 *
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1411
diff changeset
262 * @return
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1411
diff changeset
263 */
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1411
diff changeset
264 protected List<WMSLayer> parseLayers(
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1411
diff changeset
265 NodeList layersNode,
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1411
diff changeset
266 String onlineResource
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1411
diff changeset
267 ) {
1411
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
268 int len = layersNode != null ? layersNode.getLength() : 0;
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
269
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
270 logger.debug("Node has " + len + " layers.");
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
271
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
272 List<WMSLayer> layers = new ArrayList<WMSLayer>(len);
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
273
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
274 for (int i = 0; i < len; i++) {
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1411
diff changeset
275 layers.add(parseLayer(layersNode.item(i), onlineResource));
1411
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
276 }
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
277
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
278 return layers;
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
279 }
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
280
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
281
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1411
diff changeset
282 protected WMSLayer parseLayer(Node layerNode, String onlineResource) {
1411
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
283 String title = (String) XMLUtils.xpath(
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
284 layerNode,
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
285 "Title/text()",
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
286 XPathConstants.STRING);
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
287
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
288 String name = (String) XMLUtils.xpath(
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
289 layerNode,
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
290 "Name/text()",
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
291 XPathConstants.STRING);
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
292
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
293 logger.debug("Found layers: " + title + "(" + name + ")");
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
294
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
295 NodeList layersNodes = (NodeList) XMLUtils.xpath(
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
296 layerNode,
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
297 "Layer",
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
298 XPathConstants.NODESET);
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
299
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1411
diff changeset
300 List<WMSLayer> layers = parseLayers(layersNodes, onlineResource);
1411
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
301
1414
3484cbfaf369 Create new Artifacts for selected WMS layers of the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1411
diff changeset
302 return new WMSLayer(onlineResource, title, name, layers);
1411
63be3137abac Parse and display WMS layers supported by a user specified WMS service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1409
diff changeset
303 }
1408
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
304 }
5b5a20e4c4e5 Added a service that loads the Capabilities of a specified WMS - display those information in the ExternalWMSWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
305 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org