Mercurial > dive4elements > gnv-client
annotate gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/services/MetaDataService.java @ 763:e4d1fded433b
Bugfix: The Description of an InputData-Object will now only be fetched if
the Name of the data of the Current State is equal to the Name of the
InputData-Object.
gnv-artifacts/trunk@818 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Mon, 22 Mar 2010 12:52:09 +0000 |
parents | 9efc1c256dbb |
children | 9a828e5a2390 |
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(); |
606
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
322 String fisId = value.getString(0).trim(); |
604
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 } |
606
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
369 |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
370 FIS fis = this.getFIS(resultValue, fisId); |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
371 if (fis != null){ |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
372 if (parameter != null){ |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
373 fis.addParameter(parameter); |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
374 } |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
375 }else{ |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
376 resultValue.add(new DefaultFIS(fisId, parameter)); |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
377 } |
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
|
378 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS 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 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
380 } 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
|
381 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
|
382 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
|
383 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
384 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
385 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
386 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
|
387 } |
604
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
388 |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
389 |
606
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
390 private FIS getFIS (Collection<FIS> fis, String fisId){ |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
391 |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
392 Iterator<FIS> it = fis.iterator(); |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
393 while(it.hasNext()){ |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
394 FIS tmpFIS = it.next(); |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
395 if (tmpFIS.getID().equals(fisId)){ |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
396 return tmpFIS; |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
397 } |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
398 } |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
399 return null; |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
400 } |
9efc1c256dbb
Added the support of the usecase that one FIS can be identified by different MapServices. In that case the parameters will be merged into the existing FIS.
Tim Englich <tim.englich@intevation.de>
parents:
604
diff
changeset
|
401 |
604
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
402 private MapService getMapService(Collection<MapService> mapServices, |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
403 String mapServiceID){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
404 log.debug("MetaDataService.getMapService"); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
405 Iterator<MapService> it = mapServices.iterator(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
406 while (it.hasNext()){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
407 MapService service = it.next(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
408 if (service.getID().equals(mapServiceID)){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
409 return service; |
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 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
412 return null; |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
413 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
414 |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
415 private String createLayerQueryString(Collection<Layer> layer){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
416 log.debug("MetaDataService.createLayerQueryString"); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
417 StringBuffer sb = new StringBuffer();; |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
418 Iterator<Layer> it = layer.iterator(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
419 synchronized (sb) { |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
420 while (it.hasNext()){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
421 Layer l = it.next(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
422 if (!l.isGroupLayer()){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
423 sb.append(l.getID()); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
424 if (it.hasNext()){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
425 sb.append(" , "); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
426 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
427 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
428 |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
429 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
430 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
431 String returnValue = sb.toString(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
432 if (returnValue.endsWith(" , ")){ |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
433 returnValue = returnValue.substring(0,returnValue |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
434 .lastIndexOf(",")) |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
435 .trim(); |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
436 } |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
437 return returnValue; |
938ce81a6bd0
Integrated Database-Support for the Mapviewer-Interface
Tim Englich <tim.englich@intevation.de>
parents:
597
diff
changeset
|
438 } |
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
|
439 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
440 /** |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
441 * @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
|
442 */ |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
443 @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
|
444 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
|
445 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
|
446 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
|
447 // 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
|
448 } |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
449 |
cf38b983d1f3
Added the Implementation of the MetaDataService which will deliver FIS and Parameters that match to Mapservices, Region and Layers that were sent to the Service.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
450 } |