Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java @ 1063:e7c1ebfc2701
Repaired xpath expressions for wms srid and background layers that broke after the floodmap config structure changed.
flys-artifacts/trunk@2541 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 24 Aug 2011 07:51:12 +0000 |
parents | ae198bef4ba0 |
children | 7f5426c69ee0 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java Tue Aug 23 15:32:33 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java Wed Aug 24 07:51:12 2011 +0000 @@ -1,14 +1,20 @@ package de.intevation.flys.artifacts.states; +import java.util.HashMap; import java.util.List; +import java.util.Map; + +import javax.xml.xpath.XPathConstants; import org.apache.log4j.Logger; +import org.w3c.dom.Document; import org.w3c.dom.Node; import de.intevation.artifacts.CallMeta; import de.intevation.artifacts.common.utils.Config; +import de.intevation.artifacts.common.utils.XMLUtils; import de.intevation.artifactdatabase.state.Facet; @@ -23,10 +29,10 @@ public static final String I18N_DESCRIPTION = "floodmap.wmsbackground"; public static final String XPATH_WMS_URL = - "/artifact-database/floodmap/background-layer/@url"; + "/artifact-database/floodmap/river[@name=$name]/background-wms/@url"; public static final String XPATH_WMS_LAYER = - "/artifact-database/floodmap/background-layer/@layer"; + "/artifact-database/floodmap/river[@name=$name]/background-wms/@layers"; protected String url; @@ -41,9 +47,6 @@ super.setup(config); logger.debug("WMSBackgroundState.setup()"); - - this.url = Config.getStringXPath(XPATH_WMS_URL); - this.layer = Config.getStringXPath(XPATH_WMS_LAYER); } @@ -58,6 +61,29 @@ logger.debug("WMSBackgroundState.computeInit()"); if (url == null || layer == null) { + Document cfg = Config.getConfig(); + + String river = artifact.getDataAsString("river"); + + Map<String, String> variables = new HashMap<String, String>(); + variables.put("name", river); + + url = (String) XMLUtils.xpath( + cfg, + XPATH_WMS_URL, + XPathConstants.STRING, + null, + variables); + + layer = (String) XMLUtils.xpath( + cfg, + XPATH_WMS_LAYER, + XPathConstants.STRING, + null, + variables); + } + + if (url == null || layer == null) { logger.warn("No background layers currently configured:"); logger.warn("... add config for WMS url: " + XPATH_WMS_URL); logger.warn("... add config for WMS layer: " + XPATH_WMS_LAYER);