Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/server/MetaDataServiceImpl.java @ 1293:e88cd17b3420
Bugfix: #233 Redraw computation table if no data was retrieved to display an error message immediatly.
flys-client/trunk@2906 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 07 Oct 2011 13:39:35 +0000 |
parents | a1a5dc2b9e34 |
children | ab8eb2f544f2 |
rev | line source |
---|---|
262
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.client.server; |
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
3 import org.w3c.dom.Document; |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
4 import org.w3c.dom.Element; |
262
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
5 |
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 import com.google.gwt.user.server.rpc.RemoteServiceServlet; |
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
7 |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
8 import de.intevation.artifacts.common.ArtifactNamespaceContext; |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
9 |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
10 import de.intevation.artifacts.common.utils.XMLUtils; |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
11 |
262
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 import de.intevation.flys.client.shared.exceptions.ServerException; |
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 |
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 import de.intevation.flys.client.client.services.MetaDataService; |
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
15 |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
16 import de.intevation.artifacts.httpclient.exceptions.ConnectionException; |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
17 |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
18 import de.intevation.artifacts.httpclient.http.HttpClient; |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
19 import de.intevation.artifacts.httpclient.http.HttpClientImpl; |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
20 |
278
f33af25b7490
Datacage: transport rpc result to ui.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
276
diff
changeset
|
21 import de.intevation.flys.client.shared.model.DataCageTree; |
f33af25b7490
Datacage: transport rpc result to ui.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
276
diff
changeset
|
22 |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
278
diff
changeset
|
23 import de.intevation.flys.client.server.meta.Converter; |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
278
diff
changeset
|
24 |
262
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 public class MetaDataServiceImpl |
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 extends RemoteServiceServlet |
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
27 implements MetaDataService |
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 { |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
29 public static final String ERROR_NO_META_DATA_FOUND = |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
30 "error_no_meta_data_found"; |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
31 |
827
bd56dc762e7f
Datacage: Re-added the outs parameter to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
32 @Override |
811
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
33 public DataCageTree getMetaData( |
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
34 String url, |
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
35 String locale, |
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
36 String artifactId, |
827
bd56dc762e7f
Datacage: Re-added the outs parameter to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
37 String userId, |
916
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
827
diff
changeset
|
38 String outs, |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
827
diff
changeset
|
39 String parameters |
811
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
40 ) throws ServerException |
262
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
41 { |
812
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
811
diff
changeset
|
42 System.out.println("MetaDataService.getMetaData"); |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
43 |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
44 Document doc = XMLUtils.newDocument(); |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
45 |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
46 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
47 doc, |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
48 ArtifactNamespaceContext.NAMESPACE_URI, |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
49 ArtifactNamespaceContext.NAMESPACE_PREFIX); |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
50 |
812
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
811
diff
changeset
|
51 Element meta = ec.create("meta"); |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
52 |
811
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
53 if (artifactId != null) { |
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
54 Element artifactEl = ec.create("artifact-id"); |
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
55 artifactEl.setAttribute("value", artifactId); |
812
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
811
diff
changeset
|
56 meta.appendChild(artifactEl); |
811
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
57 } |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
58 |
811
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
59 if (userId != null) { |
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
60 Element userEl = ec.create("user-id"); |
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
61 userEl.setAttribute("value", userId); |
812
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
811
diff
changeset
|
62 meta.appendChild(userEl); |
811
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
63 } |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
64 |
827
bd56dc762e7f
Datacage: Re-added the outs parameter to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
65 if (outs != null) { |
bd56dc762e7f
Datacage: Re-added the outs parameter to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
66 Element outsEl = ec.create("outs"); |
bd56dc762e7f
Datacage: Re-added the outs parameter to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
67 outsEl.setAttribute("value", outs); |
bd56dc762e7f
Datacage: Re-added the outs parameter to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
68 meta.appendChild(outsEl); |
bd56dc762e7f
Datacage: Re-added the outs parameter to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
69 } |
bd56dc762e7f
Datacage: Re-added the outs parameter to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
70 |
916
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
827
diff
changeset
|
71 if (parameters != null) { |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
827
diff
changeset
|
72 Element paramsEl = ec.create("parameters"); |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
827
diff
changeset
|
73 paramsEl.setAttribute("value", parameters); |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
827
diff
changeset
|
74 meta.appendChild(paramsEl); |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
827
diff
changeset
|
75 } |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
827
diff
changeset
|
76 |
812
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
811
diff
changeset
|
77 doc.appendChild(meta); |
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
811
diff
changeset
|
78 |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
79 HttpClient client = new HttpClientImpl(url, locale); |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
80 |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
81 try { |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
278
diff
changeset
|
82 Converter converter = new Converter(); |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
278
diff
changeset
|
83 return converter.convert(client.callService(url, "metadata", doc)); |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
84 } |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
85 catch (ConnectionException ce) { |
812
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
811
diff
changeset
|
86 ce.printStackTrace(); |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
87 } |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
88 |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
89 throw new ServerException(ERROR_NO_META_DATA_FOUND); |
262
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
90 } |
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
91 } |
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
92 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |