Mercurial > dive4elements > gnv-client
comparison gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/DefaultArtifactDatabaseClient.java @ 1005:397b4cb8589b
Prevent NPE if the Mapviewer has delivered no Geometry.
gnv/trunk@1215 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Tue, 15 Jun 2010 07:49:06 +0000 |
parents | 21ad44ccdb84 |
children | 28a0628b11b0 |
comparison
equal
deleted
inserted
replaced
1004:a0d16ccb82ba | 1005:397b4cb8589b |
---|---|
1 package de.intevation.gnv.artifactdatabase.client; | 1 package de.intevation.gnv.artifactdatabase.client; |
2 | |
3 import java.io.IOException; | |
4 import java.io.InputStream; | |
5 import java.io.InputStreamReader; | |
6 import java.io.OutputStream; | |
7 import java.io.OutputStreamWriter; | |
8 import java.util.ArrayList; | |
9 import java.util.Collection; | |
10 import java.util.HashMap; | |
11 import java.util.Iterator; | |
12 import java.util.List; | |
13 import java.util.Locale; | |
14 import java.util.Map; | |
15 | |
16 import org.apache.log4j.Logger; | |
17 import org.restlet.Client; | |
18 import org.restlet.data.ClientInfo; | |
19 import org.restlet.data.Language; | |
20 import org.restlet.data.Method; | |
21 import org.restlet.data.Preference; | |
22 import org.restlet.data.Protocol; | |
23 import org.restlet.data.Request; | |
24 import org.restlet.data.Response; | |
25 import org.restlet.representation.Representation; | |
26 import org.restlet.representation.StringRepresentation; | |
27 import org.w3c.dom.Document; | |
28 import org.w3c.dom.Element; | |
29 import org.w3c.dom.Node; | |
30 import org.w3c.dom.NodeList; | |
2 | 31 |
3 import de.intevation.gnv.artifactdatabase.client.exception.ArtifactDatabaseClientException; | 32 import de.intevation.gnv.artifactdatabase.client.exception.ArtifactDatabaseClientException; |
4 import de.intevation.gnv.artifactdatabase.client.exception.ArtifactDatabaseInputException; | 33 import de.intevation.gnv.artifactdatabase.client.exception.ArtifactDatabaseInputException; |
5 | |
6 import de.intevation.gnv.artifactdatabase.objects.Artifact; | 34 import de.intevation.gnv.artifactdatabase.objects.Artifact; |
7 import de.intevation.gnv.artifactdatabase.objects.ArtifactDescription; | 35 import de.intevation.gnv.artifactdatabase.objects.ArtifactDescription; |
8 import de.intevation.gnv.artifactdatabase.objects.ArtifactFactory; | 36 import de.intevation.gnv.artifactdatabase.objects.ArtifactFactory; |
9 import de.intevation.gnv.artifactdatabase.objects.ArtifactObject; | 37 import de.intevation.gnv.artifactdatabase.objects.ArtifactObject; |
10 import de.intevation.gnv.artifactdatabase.objects.ArtifactStatisticsSet; | 38 import de.intevation.gnv.artifactdatabase.objects.ArtifactStatisticsSet; |
17 import de.intevation.gnv.artifactdatabase.objects.InputParameter; | 45 import de.intevation.gnv.artifactdatabase.objects.InputParameter; |
18 import de.intevation.gnv.artifactdatabase.objects.OutputMode; | 46 import de.intevation.gnv.artifactdatabase.objects.OutputMode; |
19 import de.intevation.gnv.artifactdatabase.objects.OutputParameter; | 47 import de.intevation.gnv.artifactdatabase.objects.OutputParameter; |
20 import de.intevation.gnv.artifactdatabase.objects.ParametrizedArtifactFactory; | 48 import de.intevation.gnv.artifactdatabase.objects.ParametrizedArtifactFactory; |
21 import de.intevation.gnv.artifactdatabase.objects.ParametrizedArtifactObject; | 49 import de.intevation.gnv.artifactdatabase.objects.ParametrizedArtifactObject; |
22 | |
23 import de.intevation.gnv.artifactdatabase.objects.map.Layer; | 50 import de.intevation.gnv.artifactdatabase.objects.map.Layer; |
24 import de.intevation.gnv.artifactdatabase.objects.map.MapService; | 51 import de.intevation.gnv.artifactdatabase.objects.map.MapService; |
25 | |
26 import de.intevation.gnv.propertiesreader.PropertiesReader; | 52 import de.intevation.gnv.propertiesreader.PropertiesReader; |
27 import de.intevation.gnv.propertiesreader.PropertiesReaderFactory; | 53 import de.intevation.gnv.propertiesreader.PropertiesReaderFactory; |
28 | |
29 import de.intevation.gnv.util.XMLUtils; | 54 import de.intevation.gnv.util.XMLUtils; |
30 | |
31 import java.io.IOException; | |
32 import java.io.InputStream; | |
33 import java.io.InputStreamReader; | |
34 import java.io.OutputStream; | |
35 import java.io.OutputStreamWriter; | |
36 | |
37 import java.util.ArrayList; | |
38 import java.util.Collection; | |
39 import java.util.HashMap; | |
40 import java.util.Iterator; | |
41 import java.util.List; | |
42 import java.util.Locale; | |
43 import java.util.Map; | |
44 | |
45 import org.apache.log4j.Logger; | |
46 | |
47 import org.restlet.Client; | |
48 | |
49 import org.restlet.data.ClientInfo; | |
50 import org.restlet.data.Language; | |
51 import org.restlet.data.Method; | |
52 import org.restlet.data.Preference; | |
53 import org.restlet.data.Protocol; | |
54 import org.restlet.data.Request; | |
55 import org.restlet.data.Response; | |
56 | |
57 import org.restlet.representation.Representation; | |
58 import org.restlet.representation.StringRepresentation; | |
59 | |
60 import org.w3c.dom.Document; | |
61 import org.w3c.dom.Element; | |
62 import org.w3c.dom.Node; | |
63 import org.w3c.dom.NodeList; | |
64 | 55 |
65 /** | 56 /** |
66 * The default implementation of <code>ArtifactDatabaseClient</code> which | 57 * The default implementation of <code>ArtifactDatabaseClient</code> which |
67 * implements methods to communicate via HTTP protocol with the artifact server. | 58 * implements methods to communicate via HTTP protocol with the artifact server. |
68 * | 59 * |
272 } | 263 } |
273 | 264 |
274 | 265 |
275 private InputStream doPostRequest(String requestUrl, Document requestBody) | 266 private InputStream doPostRequest(String requestUrl, Document requestBody) |
276 throws IOException { | 267 throws IOException { |
268 | |
269 log.debug("URL: "+ requestUrl); | |
270 log.debug("Body"); | |
271 log.debug(XMLUtils.writeDocument2String(requestBody)); | |
272 | |
277 Client client = new Client(Protocol.HTTP); | 273 Client client = new Client(Protocol.HTTP); |
278 Request request = initialize(new Request(Method.POST, requestUrl)); | 274 Request request = initialize(new Request(Method.POST, requestUrl)); |
279 String documentBody = XMLUtils.writeDocument2String(requestBody); | 275 String documentBody = XMLUtils.writeDocument2String(requestBody); |
280 Representation representation = new StringRepresentation(documentBody); | 276 Representation representation = new StringRepresentation(documentBody); |
281 request.setEntity(representation); | 277 request.setEntity(representation); |
1089 log.debug("DefaultArtifactDatabaseClient.createMetaDataRequestBody"); | 1085 log.debug("DefaultArtifactDatabaseClient.createMetaDataRequestBody"); |
1090 Document document = XMLUtils.newDocument(); | 1086 Document document = XMLUtils.newDocument(); |
1091 Node rootNode = this.createArtifactElement(document, "GetMetaData"); | 1087 Node rootNode = this.createArtifactElement(document, "GetMetaData"); |
1092 document.appendChild(rootNode); | 1088 document.appendChild(rootNode); |
1093 | 1089 |
1094 Element locationNode = this.createArtifactElement(document, "location"); | 1090 if (geometry != null){ |
1095 locationNode.setAttribute("srs", srs); | 1091 Element locationNode = this.createArtifactElement(document, "location"); |
1096 locationNode.appendChild(document.createTextNode(geometry)); | 1092 locationNode.setAttribute("srs", srs); |
1097 rootNode.appendChild(locationNode); | 1093 locationNode.appendChild(document.createTextNode(geometry)); |
1098 | 1094 rootNode.appendChild(locationNode); |
1095 } | |
1099 Element mapServicesNode = this.createArtifactElement(document, | 1096 Element mapServicesNode = this.createArtifactElement(document, |
1100 "mapservices"); | 1097 "mapservices"); |
1101 Iterator<MapService> it = mapServices.iterator(); | 1098 Iterator<MapService> it = mapServices.iterator(); |
1102 while (it.hasNext()){ | 1099 while (it.hasNext()){ |
1103 MapService mapService = it.next(); | 1100 MapService mapService = it.next(); |