Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/server/MetaDataServiceImpl.java @ 9709:b74f817435fe
comment removed
author | dnt_bjoernsen <d.tironi@bjoernsen.de> |
---|---|
date | Wed, 27 Jan 2021 11:47:38 +0100 |
parents | b188255f08b3 |
children |
rev | line source |
---|---|
5861
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5993
ea9eef426962
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5861
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5861
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5993
ea9eef426962
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5861
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5861
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
9 package org.dive4elements.river.client.server; |
262
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
11 import java.util.Iterator; |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
12 import java.util.List; |
262
44a340c9becc
Added stub for meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
14 import org.apache.log4j.Logger; |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
15 import org.dive4elements.artifacts.common.ArtifactNamespaceContext; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
16 import org.dive4elements.artifacts.common.utils.XMLUtils; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
17 import org.dive4elements.artifacts.httpclient.exceptions.ConnectionException; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
18 import org.dive4elements.artifacts.httpclient.http.HttpClient; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
19 import org.dive4elements.artifacts.httpclient.http.HttpClientImpl; |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
20 import org.dive4elements.river.client.client.services.MetaDataService; |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
21 import org.dive4elements.river.client.server.auth.User; |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
22 import org.dive4elements.river.client.server.meta.Converter; |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
23 import org.dive4elements.river.client.shared.exceptions.ServerException; |
7465
4b29bb2c785f
Datacage: Remove tree branches vom datacage tree on client side which do not contain loadable data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5993
diff
changeset
|
24 import org.dive4elements.river.client.shared.model.AttrList; |
4b29bb2c785f
Datacage: Remove tree branches vom datacage tree on client side which do not contain loadable data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5993
diff
changeset
|
25 import org.dive4elements.river.client.shared.model.DataCageNode; |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
26 import org.dive4elements.river.client.shared.model.DataCageTree; |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
27 import org.w3c.dom.Document; |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
28 import org.w3c.dom.Element; |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
278
diff
changeset
|
29 |
3346
f2039d030b5e
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1442
diff
changeset
|
30 /** |
f2039d030b5e
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1442
diff
changeset
|
31 * Service that returns certain meta-data from the backends data, polished to |
f2039d030b5e
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1442
diff
changeset
|
32 * inclusion into current project. |
f2039d030b5e
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1442
diff
changeset
|
33 */ |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
34 public class MetaDataServiceImpl extends RemoteServiceServlet implements MetaDataService { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
916
diff
changeset
|
35 |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
36 private static final long serialVersionUID = 1L; |
3346
f2039d030b5e
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1442
diff
changeset
|
37 |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
38 /** Our very own log. */ |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
39 private static final Logger log = Logger.getLogger(MetaDataServiceImpl.class); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
40 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
41 private static final String ERROR_NO_META_DATA_FOUND = "error_no_meta_data_found"; |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
42 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
43 private static final class Prune { |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
44 private final User user; |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
45 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
46 public Prune(final User user) { |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
47 this.user = user; |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
48 } |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
49 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
50 void execute(final DataCageTree tree) { |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
51 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
52 final DataCageNode root = tree.getRoot(); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
53 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
54 if (root == null || !root.hasChildren()) |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
55 return; |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
56 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
57 recursivePrune(root); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
58 } |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
59 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
60 private boolean recursivePrune(final DataCageNode node) { |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
61 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
62 /* filter by user - features */ |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
63 if (!acceptUserFeatures(node)) |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
64 return false; |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
65 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
66 /* recursively check all leafs, we only accepts real ones that have a factory */ |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
67 if (!node.hasChildren()) |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
68 return acceptLeaf(node); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
69 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
70 final List<DataCageNode> children = node.getChildren(); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
71 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
72 for (final Iterator<DataCageNode> iterator = children.iterator(); iterator.hasNext();) { |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
73 final DataCageNode dataCageNode = iterator.next(); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
74 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
75 if (!recursivePrune(dataCageNode)) |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
76 iterator.remove(); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
77 } |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
78 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
79 return !children.isEmpty(); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
80 } |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
81 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
82 private boolean acceptUserFeatures(final DataCageNode node) { |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
83 final AttrList al = node.getAttributes(); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
84 if (al == null) |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
85 return true; |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
86 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
87 final String module = al.getValue("module"); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
88 if (module == null) |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
89 return true; |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
90 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
91 if (this.user == null || this.user.canUseFeature("module:" + module)) |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
92 return true; |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
93 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
94 return false; |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
95 } |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
96 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
97 private boolean acceptLeaf(final DataCageNode node) { |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
98 final AttrList al = node.getAttributes(); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
99 if (al == null) |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
100 return false; |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
101 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
102 return al.hasAttribute("factory"); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
103 } |
7465
4b29bb2c785f
Datacage: Remove tree branches vom datacage tree on client side which do not contain loadable data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5993
diff
changeset
|
104 } |
4b29bb2c785f
Datacage: Remove tree branches vom datacage tree on client side which do not contain loadable data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5993
diff
changeset
|
105 |
3346
f2039d030b5e
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1442
diff
changeset
|
106 /** |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
107 * @param locale |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
108 * needed for i18n. |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
109 * @param artifactId |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
110 * ID of masterartifact (can be null) |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
111 * @param userId |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
112 * can be null |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
113 * @param outs |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
114 * can be null |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
115 * @param parameters |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
116 * can be null or parameters like |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
117 * "load-system:true;key:value" |
3346
f2039d030b5e
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1442
diff
changeset
|
118 */ |
827
bd56dc762e7f
Datacage: Re-added the outs parameter to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
119 @Override |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
120 public DataCageTree getMetaData(final String locale, final String artifactId, final String userId, final String outs, final String parameters) |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
121 throws ServerException { |
8203
238fc722f87a
sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7465
diff
changeset
|
122 log.info("MetaDataService.getMetaData"); |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
123 |
1442
4a6814be92ba
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1425
diff
changeset
|
124 // Create the query document. |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
125 final String url = getServletContext().getInitParameter("server-url"); |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
126 |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
127 final Document doc = XMLUtils.newDocument(); |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
128 |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
129 final XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator(doc, ArtifactNamespaceContext.NAMESPACE_URI, ArtifactNamespaceContext.NAMESPACE_PREFIX); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
130 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
131 final Element meta = ec.create("meta"); |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
132 |
811
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
133 if (artifactId != null) { |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
134 final Element artifactEl = ec.create("artifact-id"); |
811
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
135 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
|
136 meta.appendChild(artifactEl); |
811
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
137 } |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
138 |
811
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
139 if (userId != null) { |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
140 final Element userEl = ec.create("user-id"); |
811
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
141 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
|
142 meta.appendChild(userEl); |
811
8fa303586f14
Pass user id to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
615
diff
changeset
|
143 } |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
144 |
827
bd56dc762e7f
Datacage: Re-added the outs parameter to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
145 if (outs != null) { |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
146 final Element outsEl = ec.create("outs"); |
827
bd56dc762e7f
Datacage: Re-added the outs parameter to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
147 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
|
148 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
|
149 } |
bd56dc762e7f
Datacage: Re-added the outs parameter to the meta data service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
150 |
916
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
827
diff
changeset
|
151 if (parameters != null) { |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
152 final Element paramsEl = ec.create("parameters"); |
916
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
827
diff
changeset
|
153 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
|
154 meta.appendChild(paramsEl); |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
827
diff
changeset
|
155 } |
a1a5dc2b9e34
Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
827
diff
changeset
|
156 |
812
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
811
diff
changeset
|
157 doc.appendChild(meta); |
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
811
diff
changeset
|
158 |
1442
4a6814be92ba
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1425
diff
changeset
|
159 // Fire. |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
160 final HttpClient client = new HttpClientImpl(url, locale); |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
161 |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
162 try { |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
163 final User user = getUser(); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
164 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
165 final Converter converter = new Converter(); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
166 final DataCageTree tree = converter.convert(client.callService(url, "metadata", doc)); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
167 |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
168 new Prune(user).execute(tree); |
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
169 |
7465
4b29bb2c785f
Datacage: Remove tree branches vom datacage tree on client side which do not contain loadable data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5993
diff
changeset
|
170 return tree; |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
171 } |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
172 catch (final ConnectionException ce) { |
812
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
811
diff
changeset
|
173 ce.printStackTrace(); |
276
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
174 } |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
175 |
f4c8ce11df33
UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
262
diff
changeset
|
176 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
|
177 } |
9520
b188255f08b3
Allow to filter datacage entries by module-roles of current user.
gernotbelger
parents:
8856
diff
changeset
|
178 } |