Mercurial > dive4elements > river
diff flys-client/src/main/java/de/intevation/flys/client/server/AddArtifactServiceImpl.java @ 99:5c3d685546a6
Added a new service to describe collections.
flys-client/trunk@1613 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 30 Mar 2011 07:35:59 +0000 |
parents | c8cd1b918901 |
children | f7967d12ce6e |
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/server/AddArtifactServiceImpl.java Wed Mar 30 07:31:50 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/server/AddArtifactServiceImpl.java Wed Mar 30 07:35:59 2011 +0000 @@ -34,11 +34,11 @@ * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class AddArtifactServiceImpl -extends RemoteServiceServlet +extends DescribeCollectionServiceImpl implements AddArtifactService { public Collection add(Collection collection, Artifact artifact, String url) { - System.out.println("AddArtifactServiceImpl - add()"); + System.out.println("AddArtifactServiceImpl.add"); Document add = ClientProtocolUtils.newAddArtifactDocument( artifact.getUuid(), null); @@ -63,158 +63,5 @@ return null; } - - - /** - * This method takes the DESCRIBE document of the Collections describe() - * operation and extracts the information about the collection itself and - * the collection items. - * - * @param description The DESCRIBE document of the Collections describe() - * operation. - * - * @return a Collection with CollectionItems. - */ - protected Collection parseCollection(Document description) { - System.out.println("AddArtifactServiceImpl.parseCollection"); - - if (description == null) { - System.err.println("The DESCRIBE of the Collection is null!"); - return null; - } - - String uuid = XMLUtils.xpathString( - description, - "art:artifact-collection/@art:uuid", - ArtifactNamespaceContext.INSTANCE); - - if (uuid == null || uuid.equals("")) { - System.err.println("Found an invalid Collection!"); - return null; - } - - Collection c = new DefaultCollection(uuid); - - NodeList items = (NodeList) XMLUtils.xpath( - description, - "art:artifact-collection/art:artifacts/art:artifact", - XPathConstants.NODESET, - ArtifactNamespaceContext.INSTANCE); - - if (items == null || items.getLength() == 0) { - System.out.println("No collection item found for this collection."); - - return c; - } - - int size = items.getLength(); - - for (int i = 0; i < size; i++) { - CollectionItem item = parseCollectionItem(items.item(i)); - - if (item != null) { - c.addItem(item); - } - } - - System.out.println( - "Found " + c.getItemLength() + " collection items " + - "for the Collection '" + c.identifier() + "'."); - - return c; - } - - - /** - * This method extracts the CollectionItem from <i>node</i> with its output - * modes. The output modes are parsed using the parseOutputModes() method. - * - * @param node A node that contains information about a CollectionItem. - * - * @return a CollectionItem. - */ - protected CollectionItem parseCollectionItem(Node node) { - System.out.println("AddArtifactServiceImpl.parseCollectionItem"); - - if (node == null) { - System.err.println("The node for parsing CollectionItem is null!"); - return null; - } - - String uuid = XMLUtils.xpathString( - node, "@art:uuid", ArtifactNamespaceContext.INSTANCE); - - String hash = XMLUtils.xpathString( - node, "@art:hash", ArtifactNamespaceContext.INSTANCE); - - if (uuid == null || uuid.equals("")) { - System.err.println("Found an invalid CollectionItem!"); - } - - Node outputmodes = (Node) XMLUtils.xpath( - node, - "art:outputmodes", - XPathConstants.NODE, - ArtifactNamespaceContext.INSTANCE); - - List<OutputMode> modes = parseOutputModes(outputmodes); - - return new DefaultCollectionItem(uuid, hash, modes); - } - - - /** - * This method extracts the OutputModes available for a specific - * CollectionItem and returns them as list. - * - * @param node The root node of the outputmodes list. - * - * @return a list of OutputModes. - */ - protected List<OutputMode> parseOutputModes(Node node) { - System.out.println("AddArtifactServiceImpl.parseOutputModes"); - - if (node == null) { - System.err.println("The node for parsing OutputModes is null!"); - return null; - } - - NodeList list = (NodeList) XMLUtils.xpath( - node, - "art:output", - XPathConstants.NODESET, - ArtifactNamespaceContext.INSTANCE); - - if (list == null || list.getLength() == 0) { - System.err.println("No outputmode nodes found!"); - return null; - } - - int size = list.getLength(); - - List<OutputMode> modes = new ArrayList<OutputMode>(size); - - for (int i = 0; i < size; i++) { - Node tmp = list.item(i); - String name = XMLUtils.xpathString( - tmp, "@art:name", ArtifactNamespaceContext.INSTANCE); - String desc = XMLUtils.xpathString( - tmp, "@art:description", ArtifactNamespaceContext.INSTANCE); - String mime = XMLUtils.xpathString( - tmp, "@art:mime-type", ArtifactNamespaceContext.INSTANCE); - - if (name == null || name.equals("")) { - System.err.println("Found an invalid output mode."); - - continue; - } - - // TODO Parse Facets - - modes.add(new DefaultOutputMode(name, desc, mime)); - } - - return modes; - } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :