Mercurial > dive4elements > river
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 :