Mercurial > dive4elements > river
comparison gwt-client/src/main/java/org/dive4elements/river/client/server/MetaDataServiceImpl.java @ 7465:4b29bb2c785f
Datacage: Remove tree branches vom datacage tree on client side which do not contain loadable data.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Wed, 30 Oct 2013 11:58:57 +0100 |
parents | ea9eef426962 |
children | 238fc722f87a |
comparison
equal
deleted
inserted
replaced
7464:f16dce7a2407 | 7465:4b29bb2c785f |
---|---|
26 import org.dive4elements.artifacts.httpclient.exceptions.ConnectionException; | 26 import org.dive4elements.artifacts.httpclient.exceptions.ConnectionException; |
27 | 27 |
28 import org.dive4elements.artifacts.httpclient.http.HttpClient; | 28 import org.dive4elements.artifacts.httpclient.http.HttpClient; |
29 import org.dive4elements.artifacts.httpclient.http.HttpClientImpl; | 29 import org.dive4elements.artifacts.httpclient.http.HttpClientImpl; |
30 | 30 |
31 import org.dive4elements.river.client.shared.model.AttrList; | |
32 import org.dive4elements.river.client.shared.model.DataCageNode; | |
31 import org.dive4elements.river.client.shared.model.DataCageTree; | 33 import org.dive4elements.river.client.shared.model.DataCageTree; |
32 | 34 |
33 import org.dive4elements.river.client.server.meta.Converter; | 35 import org.dive4elements.river.client.server.meta.Converter; |
34 | 36 |
35 /** | 37 /** |
36 * Service that returns certain meta-data from the backends data, polished to | 38 * Service that returns certain meta-data from the backends data, polished to |
37 * inclusion into current project. | 39 * inclusion into current project. |
38 */ | 40 */ |
39 public class MetaDataServiceImpl | 41 public class MetaDataServiceImpl |
40 extends RemoteServiceServlet | 42 extends RemoteServiceServlet |
41 implements MetaDataService | 43 implements MetaDataService, DataCageTree.Visitor |
42 { | 44 { |
43 /** Our very own logger. */ | 45 /** Our very own logger. */ |
44 private static final Logger logger = | 46 private static final Logger logger = |
45 Logger.getLogger(MetaDataServiceImpl.class); | 47 Logger.getLogger(MetaDataServiceImpl.class); |
46 | 48 |
47 public static final String ERROR_NO_META_DATA_FOUND = | 49 public static final String ERROR_NO_META_DATA_FOUND = |
48 "error_no_meta_data_found"; | 50 "error_no_meta_data_found"; |
49 | 51 |
52 | |
53 @Override | |
54 public boolean accept(DataCageNode node) { | |
55 AttrList al = node.getAttributes(); | |
56 return al != null && al.hasAttribute("factory"); | |
57 } | |
50 | 58 |
51 /** | 59 /** |
52 * @param locale needed for i18n. | 60 * @param locale needed for i18n. |
53 * @param artifactId ID of masterartifact (can be null) | 61 * @param artifactId ID of masterartifact (can be null) |
54 * @param userId can be null | 62 * @param userId can be null |
107 // Fire. | 115 // Fire. |
108 HttpClient client = new HttpClientImpl(url, locale); | 116 HttpClient client = new HttpClientImpl(url, locale); |
109 | 117 |
110 try { | 118 try { |
111 Converter converter = new Converter(); | 119 Converter converter = new Converter(); |
112 return converter.convert(client.callService(url, "metadata", doc)); | 120 DataCageTree tree = converter.convert(client.callService(url, "metadata", doc)); |
121 tree.prune(this); | |
122 return tree; | |
113 } | 123 } |
114 catch (ConnectionException ce) { | 124 catch (ConnectionException ce) { |
115 ce.printStackTrace(); | 125 ce.printStackTrace(); |
116 } | 126 } |
117 | 127 |