diff artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java @ 295:e5bc48dc3ec3

Facets can write its internal representation to XML using a toXML() method now. artifacts/trunk@2352 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 18 Jul 2011 15:05:20 +0000
parents 995fa6994480
children f367be55dd35
line wrap: on
line diff
--- a/artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java	Thu Jul 14 14:41:00 2011 +0000
+++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java	Mon Jul 18 15:05:20 2011 +0000
@@ -9,9 +9,14 @@
 
 import java.util.List;
 
+import org.w3c.dom.Document;
 import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+import de.intevation.artifacts.ArtifactNamespaceContext;
 
 import de.intevation.artifacts.common.utils.XMLUtils;
+import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator;
 
 import de.intevation.artifactdatabase.state.Facet;
 import de.intevation.artifactdatabase.state.Output;
@@ -157,10 +162,15 @@
      * @param outputs The list of reachable outputs.
      */
     public static void appendOutputModes(
-        XMLUtils.ElementCreator creator,
-        Element                 out,
-        List<Output>            outputs)
+        Document     doc,
+        Element      out,
+        List<Output> outputs)
     {
+        ElementCreator creator = new ElementCreator(
+            doc,
+            ArtifactNamespaceContext.NAMESPACE_URI,
+            ArtifactNamespaceContext.NAMESPACE_PREFIX);
+
         for (Output o: outputs) {
             Element newOut = createArtNode(
                 creator,
@@ -173,7 +183,7 @@
                     o.getType() });
 
             Element facets = createArtNode(creator, "facets", null, null);
-            appendFacets(creator, facets, o.getFacets());
+            appendFacets(doc, facets, o.getFacets());
 
             newOut.appendChild(facets);
             out.appendChild(newOut);
@@ -190,26 +200,25 @@
      * @param facets The list of facets.
      */
     public static void appendFacets(
-        XMLUtils.ElementCreator creator,
-        Element                 facet,
-        List<Facet>             facets)
+        Document    doc,
+        Element     facet,
+        List<Facet> facets)
     {
         if (facets == null || facets.size() == 0) {
             return;
         }
 
+        ElementCreator creator = new ElementCreator(
+            doc,
+            ArtifactNamespaceContext.NAMESPACE_URI,
+            ArtifactNamespaceContext.NAMESPACE_PREFIX);
+
         for (Facet f: facets) {
-            Element newFacet = createArtNode(
-                creator,
-                "facet",
-                new String[] { "index", "name", "description" },
-                new String[] {
-                    String.valueOf(f.getIndex()),
-                    f.getName(),
-                    f.getDescription()
-                });
+            Node node = f.toXML(doc);
 
-            facet.appendChild(newFacet);
+            if (node != null) {
+                facet.appendChild(node);
+            }
         }
     }
 }

http://dive4elements.wald.intevation.org