comparison flys-client/src/main/java/de/intevation/flys/client/server/DescribeCollectionServiceImpl.java @ 270:d01b0d81b92a

Parse the facets of a Collection and distinguish between an ordinary OutputMode and an ExportMode (new). flys-client/trunk@1895 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 11 May 2011 09:11:40 +0000
parents 924da6695800
children ba238f917b94
comparison
equal deleted inserted replaced
269:eb3c16df59db 270:d01b0d81b92a
23 import de.intevation.flys.client.shared.exceptions.ServerException; 23 import de.intevation.flys.client.shared.exceptions.ServerException;
24 import de.intevation.flys.client.shared.model.Collection; 24 import de.intevation.flys.client.shared.model.Collection;
25 import de.intevation.flys.client.shared.model.CollectionItem; 25 import de.intevation.flys.client.shared.model.CollectionItem;
26 import de.intevation.flys.client.shared.model.DefaultCollection; 26 import de.intevation.flys.client.shared.model.DefaultCollection;
27 import de.intevation.flys.client.shared.model.DefaultCollectionItem; 27 import de.intevation.flys.client.shared.model.DefaultCollectionItem;
28 import de.intevation.flys.client.shared.model.DefaultFacet;
28 import de.intevation.flys.client.shared.model.DefaultOutputMode; 29 import de.intevation.flys.client.shared.model.DefaultOutputMode;
30 import de.intevation.flys.client.shared.model.ExportMode;
31 import de.intevation.flys.client.shared.model.Facet;
29 import de.intevation.flys.client.shared.model.OutputMode; 32 import de.intevation.flys.client.shared.model.OutputMode;
30 import de.intevation.flys.client.client.services.DescribeCollectionService; 33 import de.intevation.flys.client.client.services.DescribeCollectionService;
31 34
32 35
33 /** 36 /**
44 /** The error message key that is thrown if an error occured while 47 /** The error message key that is thrown if an error occured while
45 * describe() a Collection.*/ 48 * describe() a Collection.*/
46 public static final String ERROR_DESCRIBE_COLLECTION = 49 public static final String ERROR_DESCRIBE_COLLECTION =
47 "error_describe_collection"; 50 "error_describe_collection";
48 51
52 public static final String XPATH_FACETS = "art:facets/art:facet";
53
49 54
50 public Collection describe(String uuid, String serverUrl, String locale) 55 public Collection describe(String uuid, String serverUrl, String locale)
51 throws ServerException 56 throws ServerException
52 { 57 {
53 System.out.println("DescribeCollectionServiceImpl.describe"); 58 System.out.println("DescribeCollectionServiceImpl.describe");
219 System.err.println("Found an invalid output mode."); 224 System.err.println("Found an invalid output mode.");
220 225
221 continue; 226 continue;
222 } 227 }
223 228
224 // TODO Parse Facets 229 OutputMode outmode = null;
225 230 List<Facet> fs = extractFacets(tmp);
226 modes.add(new DefaultOutputMode(name, desc, mime)); 231
232 if (name.indexOf("export") > -1) {
233 outmode = new ExportMode(name, desc, mime, fs);
234 }
235 else {
236 outmode = new DefaultOutputMode(name, desc, mime, fs);
237 }
238
239 modes.add(outmode);
227 } 240 }
228 241
229 return modes; 242 return modes;
243 }
244
245
246 protected static List<Facet> extractFacets(Node outmode) {
247 System.out.println("ArtifactDescriptionFactory - extractFacets()");
248
249 NodeList facetList = (NodeList) XMLUtils.xpath(
250 outmode,
251 XPATH_FACETS,
252 XPathConstants.NODESET,
253 ArtifactNamespaceContext.INSTANCE);
254
255 int num = facetList != null ? facetList.getLength() : 0;
256
257 List<Facet> facets = new ArrayList<Facet>(num);
258
259 for (int i = 0; i < num; i++) {
260 Node facetNode = facetList.item(i);
261
262 String name = XMLUtils.xpathString(
263 facetNode, "@art:name", ArtifactNamespaceContext.INSTANCE);
264
265 if (name != null && name.length() > 0) {
266 facets.add(new DefaultFacet(name));
267 }
268 }
269
270 return facets;
230 } 271 }
231 } 272 }
232 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 273 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org