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