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

http://dive4elements.wald.intevation.org