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 }

http://dive4elements.wald.intevation.org