annotate gwt-client/src/main/java/org/dive4elements/river/client/server/CapabilitiesParser.java @ 8856:5e38e2924c07 3.2.x

Fix code style.
author Tom Gottfried <tom@intevation.de>
date Thu, 18 Jan 2018 20:12:01 +0100
parents fc54202a4b1e
children 654aaa0d7576
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
6 * documentation coming with Dive4Elements River for details.
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
9 package org.dive4elements.river.client.server;
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
6831
8c7433b8656d Backed out changeset 74a437805e2a
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6826
diff changeset
11 import org.dive4elements.artifacts.common.utils.XMLUtils;
8c7433b8656d Backed out changeset 74a437805e2a
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6826
diff changeset
12 import org.dive4elements.river.client.shared.exceptions.ServerException;
8c7433b8656d Backed out changeset 74a437805e2a
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6826
diff changeset
13 import org.dive4elements.river.client.shared.model.Capabilities;
8c7433b8656d Backed out changeset 74a437805e2a
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6826
diff changeset
14 import org.dive4elements.river.client.shared.model.ContactInformation;
8c7433b8656d Backed out changeset 74a437805e2a
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6826
diff changeset
15 import org.dive4elements.river.client.shared.model.WMSLayer;
8c7433b8656d Backed out changeset 74a437805e2a
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6826
diff changeset
16
6198
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
17 import java.io.IOException;
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 import java.io.InputStream;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import java.net.MalformedURLException;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import java.net.URL;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import java.net.URLConnection;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 import java.util.ArrayList;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 import java.util.List;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 import java.util.regex.Matcher;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 import java.util.regex.Pattern;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 import javax.xml.xpath.XPathConstants;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
6198
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
29 import org.apache.log4j.Logger;
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 import org.w3c.dom.Document;
1488
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
31 import org.w3c.dom.Element;
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 import org.w3c.dom.Node;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 import org.w3c.dom.NodeList;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34
6198
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
35 /**
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
36 * Parser for GetCapabilities of a WMS.
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
37 */
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 public class CapabilitiesParser {
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6831
diff changeset
40 private static final Logger log =
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 Logger.getLogger(CapabilitiesParser.class);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 public static final String ERR_GC_REQUEST_FAILED =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 "error_gc_req_failed";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 public static final String ERR_GC_DOC_NOT_VALID =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 "error_gc_doc_not_valid";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 public static final String ERR_MALFORMED_URL =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 "error_malformed_url";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 public static final String XPATH_WMS_CAPS =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 "/WMS_Capabilities";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 public static final String XPATH_WMT_CAPS =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 "/WMT_MS_Capabilities";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 public static final String XPATH_TITLE =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 "Service/Title/text()";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 public static final String XPATH_ONLINE_RESOURCE =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 "Service/OnlineResource/@href";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 public static final String XPATH_CONTACT_INFORMATION =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 "Service/ContactInformation";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 public static final String XPATH_CI_PERSON =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 "ContactPersonPrimary/ContactPerson/text()";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 public static final String XPATH_CI_ORGANIZATION =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 "ContactPersonPrimary/ContactOrganization/text()";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 public static final String XPATH_CI_ADDRESS =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 "ContactAddress/Address/text()";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 public static final String XPATH_CI_CITY =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 "ContactAddress/City/text()";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 public static final String XPATH_CI_POSTCODE =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 "ContactAddress/PostCode/text()";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 public static final String XPATH_CI_PHONE =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 "ContactVoiceTelephone/text()";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 public static final String XPATH_CI_EMAIL =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 "ContactElectronicMailAddress/text()";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90 public static final String XPATH_FEES =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 "Service/Fees/text()";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 public static final String XPATH_ACCESS_CONSTRAINTS =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 "Service/AccessConstraints/text()";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 public static final String XPATH_LAYERS =
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 "Capability/Layer";
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98
6198
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
99 public static final String XPATH_MAP_FORMAT =
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
100 "Capability/Request/GetMap/Format";
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
101
6221
97339d3955d7 WMSLayer now use correct OnlineResource for map requests (e.g. Omniscale OSM Service is now working), see Issue #554.
Christian Lins <christian.lins@intevation.de>
parents: 6199
diff changeset
102 public static final String XPATH_GETMAP_ONLINERESOURCE =
97339d3955d7 WMSLayer now use correct OnlineResource for map requests (e.g. Omniscale OSM Service is now working), see Issue #554.
Christian Lins <christian.lins@intevation.de>
parents: 6199
diff changeset
103 "Capability/Request/GetMap/DCPType/HTTP/Get/OnlineResource/@href";
97339d3955d7 WMSLayer now use correct OnlineResource for map requests (e.g. Omniscale OSM Service is now working), see Issue #554.
Christian Lins <christian.lins@intevation.de>
parents: 6199
diff changeset
104
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 public static final Pattern SRS_PATTERN = Pattern.compile("(EPSG:\\d+)*");
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 private CapabilitiesParser() {
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112 public static void main(String[] args) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6831
diff changeset
113 log.info("Do static Capabilities request/parsing.");
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8806
diff changeset
115 String log4jProperties = System.getenv(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8806
diff changeset
116 BaseServletContextListener.LOG4J_PROPERTIES);
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117 LoggingConfigurator.init(log4jProperties);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 try {
6198
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
120 String wmsURL = System.getProperty("test.wms");
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
121 if (wmsURL == null || args.length > 0) {
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
122 wmsURL = args[0];
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
123 }
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
124 Capabilities caps = getCapabilities(wmsURL);
1487
ea2aae01e7c4 Improved CapabilitiesParser to test WMS using its main() method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1417
diff changeset
125
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6831
diff changeset
126 log.debug(caps.toString());
6198
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
127 System.out.println(caps.toString());
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129 catch (ServerException se) {
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130 se.printStackTrace();
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6831
diff changeset
133 log.info("Finished fetching capabiltiies.");
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137 public static Capabilities getCapabilities(String urlStr)
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138 throws ServerException
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
139 {
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 try {
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141 URL url = new URL(urlStr);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6831
diff changeset
143 log.debug("Open connection to url: " + urlStr);
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145 URLConnection conn = url.openConnection();
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
146 conn.connect();
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
147
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148 InputStream is = conn.getInputStream();
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150 return parse(is);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152 catch (MalformedURLException mue) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6831
diff changeset
153 log.warn(mue, mue);
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154 throw new ServerException(ERR_MALFORMED_URL);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
156 catch (IOException ioe) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6831
diff changeset
157 log.warn(ioe, ioe);
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
158 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
159
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
160 throw new ServerException(ERR_GC_REQUEST_FAILED);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
161 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
162
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
163
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
164 protected static Capabilities parse(InputStream is)
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
165 throws ServerException
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
166 {
8806
fc54202a4b1e Do not use configuration EntityResolver here.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
167 Document doc = XMLUtils.parseDocument(is, false, null);
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
168
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
169 if (doc == null) {
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
170 throw new ServerException(ERR_GC_DOC_NOT_VALID);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
171 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
172
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
173 return CapabilitiesParser.parse(doc);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
174 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
175
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
176
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
177 public static Capabilities parse(Document doc)
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
178 throws ServerException
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
179 {
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
180 Node capabilities = getCapabilitiesNode(doc);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
181
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
182 String title = (String) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
183 capabilities,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
184 XPATH_TITLE,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
185 XPathConstants.STRING);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
186
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
187 String onlineResource = (String) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
188 capabilities,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
189 XPATH_ONLINE_RESOURCE,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
190 XPathConstants.STRING);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
191
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
192 String fees = (String) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
193 capabilities,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
194 XPATH_FEES,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
195 XPathConstants.STRING);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
196
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
197 String accessConstraints = (String) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
198 capabilities,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
199 XPATH_ACCESS_CONSTRAINTS,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
200 XPathConstants.STRING);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
201
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
202 Node contactInformation = (Node) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
203 capabilities,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
204 XPATH_CONTACT_INFORMATION,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
205 XPathConstants.NODE);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
206
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
207 ContactInformation ci = parseContactInformation(contactInformation);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
208
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6831
diff changeset
209 log.debug("Found fees: " + fees);
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6831
diff changeset
210 log.debug("Found access constraints: " + accessConstraints);
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
211
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
212 NodeList layerNodes = (NodeList) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
213 capabilities,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
214 XPATH_LAYERS,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
215 XPathConstants.NODESET);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
216
6221
97339d3955d7 WMSLayer now use correct OnlineResource for map requests (e.g. Omniscale OSM Service is now working), see Issue #554.
Christian Lins <christian.lins@intevation.de>
parents: 6199
diff changeset
217 String getMapOnlineResource = (String) XMLUtils.xpath(
97339d3955d7 WMSLayer now use correct OnlineResource for map requests (e.g. Omniscale OSM Service is now working), see Issue #554.
Christian Lins <christian.lins@intevation.de>
parents: 6199
diff changeset
218 capabilities,
97339d3955d7 WMSLayer now use correct OnlineResource for map requests (e.g. Omniscale OSM Service is now working), see Issue #554.
Christian Lins <christian.lins@intevation.de>
parents: 6199
diff changeset
219 XPATH_GETMAP_ONLINERESOURCE,
97339d3955d7 WMSLayer now use correct OnlineResource for map requests (e.g. Omniscale OSM Service is now working), see Issue #554.
Christian Lins <christian.lins@intevation.de>
parents: 6199
diff changeset
220 XPathConstants.STRING);
97339d3955d7 WMSLayer now use correct OnlineResource for map requests (e.g. Omniscale OSM Service is now working), see Issue #554.
Christian Lins <christian.lins@intevation.de>
parents: 6199
diff changeset
221
97339d3955d7 WMSLayer now use correct OnlineResource for map requests (e.g. Omniscale OSM Service is now working), see Issue #554.
Christian Lins <christian.lins@intevation.de>
parents: 6199
diff changeset
222 List<WMSLayer> layers = parseLayers(layerNodes, getMapOnlineResource);
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
223
6198
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
224 // Parse MIME types of supported return types, e.g. image/jpeg
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
225 NodeList mapFormatNodes = (NodeList)
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8806
diff changeset
226 XMLUtils.xpath(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8806
diff changeset
227 capabilities, XPATH_MAP_FORMAT, XPathConstants.NODESET);
6198
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
228 List<String> mapFormats = new ArrayList<String>();
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
229 for (int n = 0; n < mapFormatNodes.getLength(); n++) {
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
230 mapFormats.add(mapFormatNodes.item(n).getTextContent());
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
231 }
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
232
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
233 return new Capabilities(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
234 title,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
235 onlineResource,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
236 ci,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
237 fees,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
238 accessConstraints,
6198
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
239 layers,
809c91beee54 CapabilitesParser can parse map format types now (#554).
Christian Lins <christian.lins@intevation.de>
parents: 5993
diff changeset
240 mapFormats);
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
241 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
242
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
243
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
244 protected static Node getCapabilitiesNode(Document doc)
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
245 throws ServerException {
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
246 Node capabilities = (Node) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
247 doc,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
248 XPATH_WMS_CAPS,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
249 XPathConstants.NODE);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
250
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
251 if (capabilities == null) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6831
diff changeset
252 log.info("No '/WMS_Capabilities' node found.");
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6831
diff changeset
253 log.info("Try to find a '/WMT_MS_Capabilities' node.");
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
254
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
255 capabilities = (Node) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
256 doc,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
257 XPATH_WMT_CAPS,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
258 XPathConstants.NODE);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
259 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
260
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
261 if (capabilities == null) {
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
262 throw new ServerException(ERR_GC_DOC_NOT_VALID);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
263 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
264
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
265 return capabilities;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
266 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
267
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
268
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
269 protected static ContactInformation parseContactInformation(Node node) {
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
270 String person = (String) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
271 node,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
272 XPATH_CI_PERSON,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
273 XPathConstants.STRING);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
274
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
275 String organization = (String) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
276 node,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
277 XPATH_CI_ORGANIZATION,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
278 XPathConstants.STRING);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
279
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
280 String address = (String) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
281 node,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
282 XPATH_CI_ADDRESS,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
283 XPathConstants.STRING);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
284
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
285 String postcode = (String) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
286 node,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
287 XPATH_CI_POSTCODE,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
288 XPathConstants.STRING);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
289
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
290 String city = (String) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
291 node,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
292 XPATH_CI_CITY,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
293 XPathConstants.STRING);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
294
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
295 String phone = (String) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
296 node,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
297 XPATH_CI_PHONE,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
298 XPathConstants.STRING);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
299
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
300 String email = (String) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
301 node,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
302 XPATH_CI_EMAIL,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
303 XPathConstants.STRING);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
304
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
305 ContactInformation ci = new ContactInformation();
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
306 ci.setPerson(person);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
307 ci.setOrganization(organization);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
308 ci.setAddress(address);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
309 ci.setPostcode(postcode);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
310 ci.setCity(city);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
311 ci.setPhone(phone);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
312 ci.setEmail(email);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
313
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
314 return ci;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
315 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
316
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
317
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
318 /**
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
319 * @param layersNode
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
320 * @param onlineResource
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
321 *
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
322 * @return
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
323 */
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
324 protected static List<WMSLayer> parseLayers(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
325 NodeList layersNode,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
326 String onlineResource
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
327 ) {
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
328 int len = layersNode != null ? layersNode.getLength() : 0;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
329
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6831
diff changeset
330 log.debug("Node has " + len + " layers.");
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
331
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
332 List<WMSLayer> layers = new ArrayList<WMSLayer>(len);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
333
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
334 for (int i = 0; i < len; i++) {
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
335 layers.add(parseLayer(layersNode.item(i), onlineResource));
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
336 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
337
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
338 return layers;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
339 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
340
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
341
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8806
diff changeset
342 protected static WMSLayer parseLayer(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8806
diff changeset
343 Node layerNode,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8806
diff changeset
344 String onlineResource
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8806
diff changeset
345 ) {
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
346 String title = (String) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
347 layerNode,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
348 "Title/text()",
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
349 XPathConstants.STRING);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
350
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
351 String name = (String) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
352 layerNode,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
353 "Name/text()",
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
354 XPathConstants.STRING);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
355
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6831
diff changeset
356 log.debug("Found layer: " + title + "(" + name + ")");
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
357
6199
734ba3732bb6 CapabilitiesParse parses the "queryable" attribute of a WMSLayer now (#1253).
Christian Lins <christian.lins@intevation.de>
parents: 6198
diff changeset
358 boolean queryable = true;
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8806
diff changeset
359 Node queryableAttr = layerNode.getAttributes()
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8806
diff changeset
360 .getNamedItem("queryable");
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8806
diff changeset
361 if (queryableAttr != null
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8806
diff changeset
362 && queryableAttr.getNodeValue().equals("0")
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8806
diff changeset
363 ) {
6199
734ba3732bb6 CapabilitiesParse parses the "queryable" attribute of a WMSLayer now (#1253).
Christian Lins <christian.lins@intevation.de>
parents: 6198
diff changeset
364 queryable = false;
734ba3732bb6 CapabilitiesParse parses the "queryable" attribute of a WMSLayer now (#1253).
Christian Lins <christian.lins@intevation.de>
parents: 6198
diff changeset
365 }
734ba3732bb6 CapabilitiesParse parses the "queryable" attribute of a WMSLayer now (#1253).
Christian Lins <christian.lins@intevation.de>
parents: 6198
diff changeset
366
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
367 List<String> srs = parseSRS(layerNode);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
368
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
369 NodeList layersNodes = (NodeList) XMLUtils.xpath(
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
370 layerNode,
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
371 "Layer",
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
372 XPathConstants.NODESET);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
373
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
374 List<WMSLayer> layers = parseLayers(layersNodes, onlineResource);
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
375
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8806
diff changeset
376 return new WMSLayer(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8806
diff changeset
377 onlineResource, title, name, srs, layers, queryable);
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
378 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
379
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
380
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
381 protected static List<String> parseSRS(Node layerNode) {
1488
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
382 NodeList srsNodes = ((Element) layerNode).getElementsByTagName("SRS");
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
383
1488
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
384 if (srsNodes.getLength() == 0) {
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
385 srsNodes = ((Element) layerNode).getElementsByTagName("CRS");
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
386
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
387 if (srsNodes.getLength() == 0) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6831
diff changeset
388 log.debug("No explicit SRS for this layer specified.");
1488
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
389 return null;
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
390 }
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
391 }
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
392
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
393 List<String> allSRS = new ArrayList<String>();
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
394
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
395 for (int i = 0, n = srsNodes.getLength(); i < n; i++) {
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
396 List<String> srs = parseSRSItem(srsNodes.item(i).getTextContent());
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
397
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
398 if (srs != null && srs.size() > 0) {
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
399 allSRS.addAll(srs);
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
400 }
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
401 }
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
402
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
403 return allSRS;
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
404 }
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
405
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
406
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
407 protected static List<String> parseSRSItem(String srsStr) {
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
408 if (srsStr == null || srsStr.length() == 0) {
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
409 return null;
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
410 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
411
1488
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
412 List<String> allSRS = new ArrayList<String>();
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
413
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
414 if (srsStr.indexOf(" ") <= 0) {
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
415 String srs = getSRSFromString(srsStr);
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
416 if (srs != null && srs.length() > 0) {
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
417 allSRS.add(srs);
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
418 }
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
419
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
420 return allSRS;
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
421 }
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
422
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
423 String[] splittedSrs = srsStr.split(" ");
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
424
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
425 for (String singleSrs: splittedSrs) {
1488
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
426 String srs = getSRSFromString(singleSrs);
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
427 if (srs != null && srs.length() > 0) {
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
428 allSRS.add(srs);
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
429 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
430 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
431
1488
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
432 return allSRS;
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
433 }
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
434
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
435
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
436 protected static String getSRSFromString(String singleSrs) {
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
437 Matcher m = SRS_PATTERN.matcher(singleSrs);
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
438
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
439 if (m.matches()) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6831
diff changeset
440 log.debug("Found SRS '" + m.group(1) + "'");
1488
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
441 return m.group(1);
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
442 }
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
443
23ffee639f7c #431 Added support for WMS 1.3.0 projection definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1487
diff changeset
444 return null;
1417
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
445 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
446 }
42d6cf6e10b7 Moved code to parse WMS Capabilities to an own class 'CapabilitiesParser' and added code to parse SRS definitions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
447 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org