Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixChartGenerator.java @ 5838:5aa05a7a34b7
Rename modules to more fitting names.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 15:23:37 +0200 |
parents | flys-artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixChartGenerator.java@bd047b71ab37 |
children | 4897a58c8746 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixChartGenerator.java Thu Apr 25 15:23:37 2013 +0200 @@ -0,0 +1,61 @@ +package org.dive4elements.river.exports.fixings; + +import org.dive4elements.artifacts.ArtifactNamespaceContext; +import org.dive4elements.artifacts.CallContext; +import org.dive4elements.artifacts.common.utils.XMLUtils; +import org.dive4elements.river.exports.XYChartGenerator; + +import java.io.OutputStream; + +import org.apache.log4j.Logger; +import org.w3c.dom.Document; + +/** + * Base class for FixChartGenerator. + */ +public abstract class FixChartGenerator +extends XYChartGenerator +{ + /** Private logger. */ + private static Logger logger = Logger.getLogger(FixChartGenerator.class); + + public static final Double INVALID_KM = Double.valueOf(-1d); + public static final String CURRENT_KM = "currentKm"; + public static final String XPATH_CHART_CURRENTKM = + "/art:action/art:attributes/art:currentKm/@art:km"; + + @Override + public void init(Document request, OutputStream out, CallContext context) { + super.init(request, out, context); + + Double currentKm = getCurrentKmFromRequest(request); + + if (logger.isDebugEnabled()) { + logger.debug("currentKm = " + currentKm); + } + + if (currentKm != INVALID_KM) { + context.putContextValue(CURRENT_KM, currentKm); + } + } + + public static final Double getCurrentKmFromRequest(Document request) { + + String km = XMLUtils.xpathString( + request, + XPATH_CHART_CURRENTKM, + ArtifactNamespaceContext.INSTANCE); + + if (km == null) { + return INVALID_KM; + } + + try { + return Double.valueOf(km); + } + catch (NumberFormatException nfe) { + return INVALID_KM; + } + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :