[PATCH 3 of 5] Simplified recommendattion monitor code a bit

Wald Commits scm-commit at wald.intevation.org
Wed Oct 30 11:59:19 CET 2013


# HG changeset patch
# User Sascha L. Teichmann <teichmann at intevation.de>
# Date 1383130624 -3600
# Node ID f16dce7a24075fdaca5d4dacdec85620a46bf66b
# Parent  52c364813cb155205475fd8acbcedecfe94f8b68
Simplified recommendattion monitor code a bit.

diff -r 52c364813cb1 -r f16dce7a2407 artifacts/src/main/java/org/dive4elements/river/artifacts/CollectionMonitor.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/CollectionMonitor.java	Wed Oct 30 11:56:13 2013 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/CollectionMonitor.java	Wed Oct 30 11:57:04 2013 +0100
@@ -12,18 +12,16 @@
 import java.util.List;
 import java.util.Map;
 
-import javax.xml.xpath.XPathConstants;
-
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
 
 import org.dive4elements.artifacts.Artifact;
 import org.dive4elements.artifacts.ArtifactNamespaceContext;
 import org.dive4elements.artifacts.CallContext;
 import org.dive4elements.artifacts.Hook;
 
-import org.dive4elements.artifacts.common.utils.XMLUtils;
 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator;
 
 import org.dive4elements.artifactdatabase.state.Output;
@@ -33,9 +31,6 @@
 /** Monitors collection changes. */
 public class CollectionMonitor implements Hook {
 
-    public static final String XPATH_RESULT = "/art:result";
-
-
     @Override
     public void setup(Node cfg) {
     }
@@ -51,11 +46,14 @@
             return;
         }
 
-        Element result = (Element) XMLUtils.xpath(
-            doc,
-            XPATH_RESULT,
-            XPathConstants.NODE,
-            ArtifactNamespaceContext.INSTANCE);
+        NodeList results = doc.getElementsByTagNameNS(
+            ArtifactNamespaceContext.NAMESPACE_URI, "result");
+
+        if (results.getLength() < 1) {
+            return;
+        }
+
+        Element result = (Element)results.item(0);
 
         ElementCreator creator = new ElementCreator(
             doc,
@@ -63,7 +61,6 @@
             ArtifactNamespaceContext.NAMESPACE_PREFIX);
 
         Element recommended = creator.create("recommended-artifacts");
-        result.appendChild(recommended);
 
         String[] outs              = extractOutputNames(flys, context);
         Map<String, Object> params = getNoneUserSpecificParameters(flys, context);
@@ -73,6 +70,8 @@
         // TODO For newer official-lines recommendations we actually
         // need user-id (null here).
         rec.recommend(flys, null, outs, params, recommended);
+
+        result.appendChild(recommended);
     }
 
 


More information about the Dive4elements-commits mailing list