Mercurial > dive4elements > gnv-client
annotate gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/services/MetaDataService.java @ 604:938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
gnv-artifacts/trunk@666 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Tue, 09 Feb 2010 13:01:20 +0000 |
parents | cf38b983d1f3 |
children | 9efc1c256dbb |
rev | line source |
---|---|
597
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
1 /** |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
2 * |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
3 */ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
4 package de.intevation.gnv.artifacts.services; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
5 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
6 import java.util.ArrayList; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
7 import java.util.Collection; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
8 import java.util.Iterator; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
9 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
10 import javax.xml.xpath.XPathConstants; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
11 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
12 import org.apache.log4j.Logger; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
13 import org.w3c.dom.Document; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
14 import org.w3c.dom.Element; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
15 import org.w3c.dom.Node; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
16 import org.w3c.dom.NodeList; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
17 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
18 import com.vividsolutions.jts.geom.Geometry; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
19 import com.vividsolutions.jts.io.ParseException; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
20 import com.vividsolutions.jts.io.WKTReader; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
21 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
22 import de.intevation.artifactdatabase.DefaultService; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
23 import de.intevation.artifactdatabase.XMLUtils; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
24 import de.intevation.artifacts.ArtifactNamespaceContext; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
25 import de.intevation.artifacts.CallMeta; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
26 import de.intevation.artifacts.ServiceFactory; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
27 import de.intevation.gnv.artifacts.services.requestobjects.DefaultFIS; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
28 import de.intevation.gnv.artifacts.services.requestobjects.DefaultLayer; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
29 import de.intevation.gnv.artifacts.services.requestobjects.DefaultMapService; |
604
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
30 import de.intevation.gnv.artifacts.services.requestobjects.DefaultParameter; |
597
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
31 import de.intevation.gnv.artifacts.services.requestobjects.FIS; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
32 import de.intevation.gnv.artifacts.services.requestobjects.Layer; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
33 import de.intevation.gnv.artifacts.services.requestobjects.MapService; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
34 import de.intevation.gnv.artifacts.services.requestobjects.Parameter; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
35 import de.intevation.gnv.geobackend.base.Result; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
36 import de.intevation.gnv.geobackend.base.query.QueryExecutor; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
37 import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
38 import de.intevation.gnv.geobackend.base.query.exception.QueryException; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
39 import de.intevation.gnv.utils.ArtifactXMLUtilities; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
40 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
41 /** |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
42 * @author Tim Englich <tim.englich@intevation.de> |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
43 * |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
44 */ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
45 public class MetaDataService extends DefaultService { |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
46 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
47 /** |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
48 * the logger, used to log exceptions and additionally information |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
49 */ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
50 private static Logger log = Logger.getLogger(MetaDataService.class); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
51 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
52 |
604
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
53 private final static String FIS_REGION_QUERY_ID = |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
54 "mapviewer_interface_fis_region"; |
597
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
55 private final static String MAPSERVICES_HAS_FIS_QUERY_ID = |
604
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
56 "mapviewer_interface_mapservices_has_fis"; |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
57 private final static String MAPSERVICES_HAS_PARAMETER_QUERY_ID = |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
58 "mapviewer_interface_mapservices_has_parameter"; |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
59 |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
60 private final static String MAPSERVICES_HAS_PARAMETER_USING_LAYER_QUERY_ID = |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
61 "mapviewer_interface_mapservices_has_parameter_using_layer"; |
597
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
62 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
63 private static String ATTRIBUTE_ID = "id"; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
64 private static String ATTRIBUTE_NAME = "name"; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
65 private static String ATTRIBUTE_TYPE = "type"; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
66 private static String ATTRIBUTE_URL = "url"; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
67 private static String ATTRIBUTE_GROUPLAYER = "isgrouplayer"; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
68 private static String ATTRIBUTE_PARENTID = "parentid"; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
69 private static String ATTRIBUTE_SRS = "srs"; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
70 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
71 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
72 private static String XPATH_LOACTION_NODE = "art:GetMetaData/art:location"; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
73 private static String XPATH_MAPSERVICES_NODESET = "art:GetMetaData/" + |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
74 "art:mapservices/" + |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
75 "art:mapservice"; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
76 private static String XPATH_LAYER_NODESET = "art:layer"; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
77 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
78 /** |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
79 * The UID of this Class. |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
80 */ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
81 private static final long serialVersionUID = -8446483887497236372L; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
82 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
83 /** |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
84 * Constructor |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
85 */ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
86 public MetaDataService() { |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
87 super(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
88 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
89 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
90 /** |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
91 * @see de.intevation.artifactdatabase.DefaultService#process(org.w3c.dom.Document, java.lang.Object, de.intevation.artifacts.CallMeta) |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
92 */ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
93 @Override |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
94 public Document process(Document data, Object globalContext, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
95 CallMeta callMeta) { |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
96 log.debug("MetaDataService.process"); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
97 Document document = null; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
98 try { |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
99 Geometry g = this.parseGeometry(data); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
100 Collection<MapService> mapServices = this.parseMapServices(data); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
101 Collection<FIS> resultFIS = this.unionFIS(this.getFIS(g), |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
102 this.getFIS(mapServices)); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
103 document = XMLUtils.newDocument(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
104 this.writeFIS2Document(document, resultFIS); |
604
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
105 log.debug(new ArtifactXMLUtilities().writeDocument2String(document)); |
597
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
106 } catch (MetaDataServiceException e) { |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
107 log.error(e,e); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
108 document = new ArtifactXMLUtilities() |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
109 .createExceptionReport(e.getMessage(), document); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
110 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
111 return document; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
112 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
113 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
114 private Geometry parseGeometry(Document data) |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
115 throws MetaDataServiceException{ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
116 log.debug("MetaDataService.parseGeometry"); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
117 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
118 Element locationNode = (Element) XMLUtils.xpath( |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
119 data, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
120 XPATH_LOACTION_NODE, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
121 XPathConstants.NODE, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
122 ArtifactNamespaceContext.INSTANCE |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
123 ); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
124 Geometry returnValue = null; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
125 if (locationNode != null) { |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
126 String srs = locationNode.getAttribute(ATTRIBUTE_SRS); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
127 // TODO: use SRS to transform the Geometry to target-System. |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
128 String geometryValue = locationNode.getTextContent(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
129 if (geometryValue != null){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
130 try { |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
131 returnValue = new WKTReader().read(geometryValue); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
132 } catch (ParseException e) { |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
133 log.error(e,e); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
134 throw new MetaDataServiceException("The given Geometry" + |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
135 "String is not a " + |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
136 "valid WKT."); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
137 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
138 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
139 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
140 return returnValue; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
141 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
142 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
143 private Collection<MapService> parseMapServices(Document data){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
144 log.debug("MetaDataService.parseMapServices"); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
145 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
146 NodeList mapServices = (NodeList) XMLUtils.xpath(data, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
147 XPATH_MAPSERVICES_NODESET, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
148 XPathConstants.NODESET, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
149 ArtifactNamespaceContext.INSTANCE); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
150 Collection<MapService> returnValue = null; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
151 if (mapServices != null){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
152 returnValue = new ArrayList<MapService>(mapServices.getLength()); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
153 for (int i = 0; i < mapServices.getLength(); i++){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
154 Element mapServiceNode = (Element)mapServices.item(i); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
155 String id = mapServiceNode.getAttribute(ATTRIBUTE_ID); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
156 String type = mapServiceNode.getAttribute(ATTRIBUTE_TYPE); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
157 String url = mapServiceNode.getAttribute(ATTRIBUTE_URL); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
158 Collection<Layer> layer = null; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
159 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
160 NodeList layerNodes = (NodeList) XMLUtils.xpath(mapServiceNode, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
161 XPATH_LAYER_NODESET, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
162 XPathConstants.NODESET, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
163 ArtifactNamespaceContext.INSTANCE); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
164 if (layerNodes != null){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
165 layer = new ArrayList<Layer>(layerNodes.getLength()); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
166 for (int j = 0; j < layerNodes.getLength(); j++){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
167 Element layerNode = (Element)layerNodes.item(j); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
168 String layerId = layerNode.getAttribute(ATTRIBUTE_ID); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
169 String layerName = layerNode.getAttribute(ATTRIBUTE_NAME); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
170 boolean isGroupLayer = |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
171 Boolean.parseBoolean(layerNode |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
172 .getAttribute( |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
173 ATTRIBUTE_GROUPLAYER)); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
174 String parentId = layerNode |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
175 .getAttribute(ATTRIBUTE_PARENTID); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
176 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
177 layer.add(new DefaultLayer(layerId, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
178 layerName, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
179 isGroupLayer, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
180 parentId)); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
181 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
182 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
183 MapService mapService = new DefaultMapService(id, layer, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
184 type, url); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
185 returnValue.add(mapService); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
186 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
187 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
188 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
189 return returnValue; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
190 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
191 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
192 private Collection<FIS> unionFIS(Collection<FIS> fromGeometry, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
193 Collection<FIS> fromMapservices){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
194 log.debug("MetaDataService.unionFIS"); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
195 Collection<FIS> returnValue = null; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
196 if (fromGeometry == null || fromGeometry.isEmpty()){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
197 returnValue = fromMapservices; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
198 }else if (fromMapservices == null || fromMapservices.isEmpty()){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
199 returnValue = fromGeometry; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
200 }else{ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
201 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
202 returnValue = new ArrayList<FIS>(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
203 Iterator<FIS> it = fromMapservices.iterator(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
204 while (it.hasNext()){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
205 FIS fis = it.next(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
206 if (fromGeometry.contains(fis)){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
207 returnValue.add(fis); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
208 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
209 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
210 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
211 return returnValue; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
212 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
213 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
214 /** |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
215 * Puts the retrieved FIS into the given XML-Document. |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
216 * @param document the Document where the FIS should be put in. |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
217 * @param fis the retrieved FIS which should be written into |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
218 * the XML-Document. |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
219 */ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
220 private void writeFIS2Document(Document document, Collection<FIS> fis){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
221 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
222 if (fis != null){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
223 Iterator<FIS> it = fis.iterator(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
224 XMLUtils.ElementCreator creator = new XMLUtils.ElementCreator( |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
225 document, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
226 ArtifactNamespaceContext.NAMESPACE_URI, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
227 ArtifactNamespaceContext.NAMESPACE_PREFIX |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
228 ); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
229 Node rootNode = creator.create("result"); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
230 document.appendChild(rootNode); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
231 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
232 Node factoriesNode = creator.create("factories"); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
233 rootNode.appendChild(factoriesNode); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
234 while (it.hasNext()){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
235 FIS tmpFIS = it.next(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
236 Element fisNode = creator.create("factory"); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
237 fisNode.setAttribute("art:name",tmpFIS.getID()); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
238 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
239 Collection<Parameter> parameter = tmpFIS.getParameter(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
240 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
241 if(parameter != null){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
242 Iterator<Parameter> pit = parameter.iterator(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
243 while (pit.hasNext()){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
244 Parameter p = pit.next(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
245 Element parameterNode = creator.create("parameter"); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
246 parameterNode.setAttribute(ATTRIBUTE_ID, p.getID()); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
247 parameterNode.setAttribute(ATTRIBUTE_NAME, p.getName()); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
248 fisNode.appendChild(parameterNode); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
249 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
250 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
251 factoriesNode.appendChild(fisNode); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
252 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
253 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
254 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
255 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
256 /** |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
257 * Returns all FIS which Areas is intersected by this given Geometry |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
258 * @param g the Geometry which should be used to determine the FIS. |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
259 * @return all FIS which Areas is intersected by this given Geometry |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
260 */ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
261 protected Collection<FIS> getFIS(Geometry g) |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
262 throws MetaDataServiceException{ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
263 log.debug("MetaDataService.getFIS ==> Geometry"); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
264 Collection<FIS> resultValue = null; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
265 if (g != null){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
266 try { |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
267 QueryExecutor queryExecutor = QueryExecutorFactory |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
268 .getInstance() |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
269 .getQueryExecutor(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
270 Collection<Result> result = queryExecutor.executeQuery(FIS_REGION_QUERY_ID, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
271 new String[]{g.toString()}); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
272 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
273 if (result != null){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
274 resultValue = new ArrayList<FIS>(result.size()); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
275 Iterator<Result> it = result.iterator(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
276 while (it.hasNext()){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
277 Result value = it.next(); |
604
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
278 String fis_id = value.getString(0).trim(); |
597
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
279 resultValue.add(new DefaultFIS(fis_id)); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
280 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
281 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
282 } catch (QueryException e) { |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
283 log.error(e,e); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
284 throw new MetaDataServiceException("Cannot Query FIS from DB."); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
285 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
286 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
287 return resultValue; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
288 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
289 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
290 /** |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
291 * Returns all FIS which were represented by the given Mapservices |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
292 * @param mapServices the Mapservices which should determine the FIS. |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
293 * @return all FIS which where represented my the given Mapservices. |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
294 */ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
295 protected Collection<FIS> getFIS(Collection<MapService> mapServices) |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
296 throws MetaDataServiceException{ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
297 log.debug("MetaDataService.getFIS ==> MapServices"); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
298 Collection<FIS> resultValue = null; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
299 if (mapServices != null && !mapServices.isEmpty()){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
300 try { |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
301 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
302 String mapServiceNames = ""; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
303 Iterator<MapService> mit = mapServices.iterator(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
304 while(mit.hasNext()){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
305 if (mapServiceNames.length() > 0){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
306 mapServiceNames += " , "; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
307 } |
604
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
308 mapServiceNames += "'"+mit.next().getID()+"'"; |
597
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
309 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
310 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
311 QueryExecutor queryExecutor = QueryExecutorFactory |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
312 .getInstance() |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
313 .getQueryExecutor(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
314 Collection<Result> result = queryExecutor.executeQuery( |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
315 MAPSERVICES_HAS_FIS_QUERY_ID, |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
316 new String[]{mapServiceNames}); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
317 if (result != null){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
318 resultValue = new ArrayList<FIS>(result.size()); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
319 Iterator<Result> it = result.iterator(); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
320 while (it.hasNext()){ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
321 Result value = it.next(); |
604
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
322 String fis_id = value.getString(0).trim(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
323 String mapServiceID = value.getString(1).trim(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
324 |
597
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
325 // FIRST LOOK IF ONE MAPSERVICE REPRESENTS ONLY ONE PARAM |
604
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
326 Collection<Result> result2 = queryExecutor.executeQuery( |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
327 MAPSERVICES_HAS_PARAMETER_QUERY_ID, |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
328 new String[]{"'"+mapServiceID+"'"}); |
597
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
329 Collection<Parameter> parameter = null; |
604
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
330 if (result2 != null && result2.size() == 1){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
331 Iterator<Result> it2 = result2.iterator(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
332 parameter = new ArrayList<Parameter>(1); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
333 while (it2.hasNext()){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
334 Result parameterValue = it2.next(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
335 String parameterID = parameterValue.getString(0) |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
336 .trim(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
337 parameter.add(new DefaultParameter(parameterID, |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
338 parameterID)); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
339 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
340 }else{ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
341 // IF FALSE LOOK IF THE GIVEN LAYERs TO AN MAPSERVICE |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
342 // REPRESENTS DIFFERENT PARAMS |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
343 MapService service = this.getMapService(mapServices, |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
344 mapServiceID); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
345 Collection<Layer> layer = service.getLayer(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
346 if (layer != null && !layer.isEmpty()){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
347 String layerQueryString = |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
348 this.createLayerQueryString(layer); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
349 Collection<Result> parameterResult = |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
350 queryExecutor.executeQuery( |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
351 MAPSERVICES_HAS_PARAMETER_USING_LAYER_QUERY_ID, |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
352 new String[]{"'"+mapServiceID+"'", |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
353 layerQueryString}); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
354 if (parameterResult != null && |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
355 !parameterResult.isEmpty()){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
356 Iterator<Result> it2 = parameterResult.iterator(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
357 parameter = new ArrayList<Parameter>(parameterResult.size()); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
358 while (it2.hasNext()){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
359 Result parameterValue = it2.next(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
360 String parameterID = parameterValue.getString(0) |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
361 .trim(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
362 parameter.add(new DefaultParameter(parameterID, |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
363 parameterID)); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
364 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
365 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
366 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
367 |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
368 } |
597
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
369 resultValue.add(new DefaultFIS(fis_id, parameter)); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
370 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
371 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
372 } catch (QueryException e) { |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
373 log.error(e,e); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
374 throw new MetaDataServiceException("Cannot Query FIS from DB."); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
375 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
376 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
377 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
378 return resultValue; |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
379 } |
604
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
380 |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
381 |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
382 private MapService getMapService(Collection<MapService> mapServices, |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
383 String mapServiceID){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
384 log.debug("MetaDataService.getMapService"); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
385 Iterator<MapService> it = mapServices.iterator(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
386 while (it.hasNext()){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
387 MapService service = it.next(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
388 if (service.getID().equals(mapServiceID)){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
389 return service; |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
390 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
391 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
392 return null; |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
393 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
394 |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
395 private String createLayerQueryString(Collection<Layer> layer){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
396 log.debug("MetaDataService.createLayerQueryString"); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
397 StringBuffer sb = new StringBuffer();; |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
398 Iterator<Layer> it = layer.iterator(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
399 synchronized (sb) { |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
400 while (it.hasNext()){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
401 Layer l = it.next(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
402 if (!l.isGroupLayer()){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
403 sb.append(l.getID()); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
404 if (it.hasNext()){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
405 sb.append(" , "); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
406 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
407 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
408 |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
409 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
410 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
411 String returnValue = sb.toString(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
412 if (returnValue.endsWith(" , ")){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
413 returnValue = returnValue.substring(0,returnValue |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
414 .lastIndexOf(",")) |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
415 .trim(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
416 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
417 return returnValue; |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
418 } |
597
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
419 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
420 /** |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
421 * @see de.intevation.artifactdatabase.DefaultService#setup(de.intevation.artifacts.ServiceFactory, java.lang.Object) |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
422 */ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
423 @Override |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
424 public void setup(ServiceFactory factory, Object globalContext) { |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
425 log.debug("MetaDataService.setup"); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
426 super.setup(factory, globalContext); |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
427 // TODO: Perhaps it is necessary to init the QueryIds here. |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
428 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
429 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
430 } |