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 :

http://dive4elements.wald.intevation.org