diff flys-artifacts/src/main/java/de/intevation/flys/utils/FLYSUtils.java @ 1105:adb52a2005e7

Moved code to extract the river srid defined in the global configuration into FLYSUtils. flys-artifacts/trunk@2608 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 30 Aug 2011 08:09:52 +0000
parents af73f196eccc
children 7398280b11a0
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/utils/FLYSUtils.java	Mon Aug 29 09:26:56 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/utils/FLYSUtils.java	Tue Aug 30 08:09:52 2011 +0000
@@ -1,7 +1,17 @@
 package de.intevation.flys.utils;
 
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.xpath.XPathConstants;
+
+import org.w3c.dom.Document;
+
 import gnu.trove.TDoubleArrayList;
 
+import de.intevation.artifacts.common.utils.Config;
+import de.intevation.artifacts.common.utils.XMLUtils;
+
 import de.intevation.flys.artifacts.FLYSArtifact;
 import de.intevation.flys.artifacts.model.RiverFactory;
 import de.intevation.flys.model.River;
@@ -10,6 +20,9 @@
 
     public static enum KM_MODE { RANGE, LOCATIONS, NONE };
 
+    public static final String XPATH_RIVER_PROJECTION =
+        "/artifact-database/floodmap/river[@name=$name]/srid/@value";
+
 
     private FLYSUtils() {
     }
@@ -115,4 +128,34 @@
             ? RiverFactory.getRiver(sRiver)
             : null;
     }
+
+
+    /**
+     * Extracts the SRID defined in the global configuration for the river
+     * specified in <i>artifact</i>.
+     *
+     * @param artifact The FLYSArtifact that stores the name of the river.
+     *
+     * @return the SRID as string (e.g. "31466").
+     */
+    public static String getRiverSrid(FLYSArtifact artifact) {
+        String river = artifact.getDataAsString("river");
+
+        if (river == null || river.length() == 0) {
+            return null;
+        }
+
+        Map<String, String> variables = new HashMap<String, String>(1);
+        variables.put("name", river);
+
+        Document cfg = Config.getConfig();
+
+        return (String) XMLUtils.xpath(
+            cfg,
+            XPATH_RIVER_PROJECTION,
+            XPathConstants.STRING,
+            null,
+            variables);
+    }
 }
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org