diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/MapInfoService.java @ 4801:6aa1b8abe2d3

MapInfoService now submits layer names as well as WMS urls.
author Christian Lins <christian.lins@intevation.de>
date Tue, 15 Jan 2013 13:32:14 +0100
parents 8e66293c5369
children 5ca2516ebef1
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/MapInfoService.java	Sun Jan 13 17:00:37 2013 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/MapInfoService.java	Tue Jan 15 13:32:14 2013 +0100
@@ -1,29 +1,25 @@
 package de.intevation.flys.artifacts.services;
 
-import org.apache.log4j.Logger;
-
-import java.util.Map;
-import java.util.HashMap;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.Element;
-
-import javax.xml.xpath.XPathConstants;
-
 import com.vividsolutions.jts.geom.Envelope;
 
+import de.intevation.artifactdatabase.XMLService;
 import de.intevation.artifacts.CallMeta;
 import de.intevation.artifacts.GlobalContext;
-
 import de.intevation.artifacts.common.ArtifactNamespaceContext;
 import de.intevation.artifacts.common.utils.Config;
 import de.intevation.artifacts.common.utils.XMLUtils;
 import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator;
+import de.intevation.flys.utils.GeometryUtils;
 
-import de.intevation.artifactdatabase.XMLService;
+import java.util.HashMap;
+import java.util.Map;
 
-import de.intevation.flys.utils.GeometryUtils;
+import javax.xml.xpath.XPathConstants;
+
+import org.apache.log4j.Logger;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
 
 /**
  * This service provides information about the supported rivers by this
@@ -43,7 +39,7 @@
         "/artifact-database/floodmap/river[@name=$river]/background-wms";
 
     public static final String XPATH_RIVER_WMS =
-        "/artifact-database/floodmap/river[@name=$river]/river-wms/@url";
+        "/artifact-database/floodmap/river[@name=$river]/river-wms";
 
 
     /** The logger used in this service.*/
@@ -119,22 +115,38 @@
             root.appendChild(srid);
         }
 
-        Element back = (Element)getNodeXPath(XPATH_RIVER_BACKGROUND, vars);
-        if (back != null) {
-            Element background = cr.create("background-wms");
-            cr.addAttr(background, "url", back.getAttribute("url"));
-            cr.addAttr(background, "layers", back.getAttribute("layers"));
-            root.appendChild(background);
+        logger.debug("processXML: " + XMLUtils.toString(root));
+        root.appendChild(
+                createWMSElement("background-wms", XPATH_RIVER_BACKGROUND, vars, cr));
+        root.appendChild(
+                createWMSElement("river-wms", XPATH_RIVER_WMS, vars, cr));
+
+        return result;
+    }
+
+
+    protected Element createWMSElement(
+            String elementName,
+            String xpath,
+            Map<String, String> vars,
+            ElementCreator cr)
+    {
+        logger.debug("createWMSElement()");
+
+        Element el = cr.create(elementName);
+        Element wms = (Element)getNodeXPath(xpath, vars);
+
+        if (wms != null) {
+            cr.addAttr(el, "url", wms.getAttribute("url"));
+            cr.addAttr(el, "layers", wms.getAttribute("layers"));
+
+            logger.debug("createWMSElement: " + XMLUtils.toString(el));
+        }
+        else {
+            logger.debug("createWMSElement: wms == null");
         }
 
-        String wmsStr = getStringXPath(XPATH_RIVER_WMS, vars);
-        if (wmsStr != null && wmsStr.length() > 0) {
-            Element wms = cr.create("river-wms");
-            cr.addAttr(wms, "url", wmsStr);
-            root.appendChild(wms);
-        }
-
-        return result;
+        return el;
     }
 
 

http://dive4elements.wald.intevation.org