raimund@3088: package de.intevation.flys.exports.fixings; raimund@3088: raimund@3088: import org.w3c.dom.Document; raimund@3088: raimund@3088: import org.apache.log4j.Logger; raimund@3088: raimund@3088: import java.io.OutputStream; raimund@3088: raimund@3088: import de.intevation.artifacts.ArtifactNamespaceContext; raimund@3088: import de.intevation.artifacts.common.utils.XMLUtils; raimund@3088: import de.intevation.artifacts.CallContext; raimund@3088: raimund@3088: import de.intevation.flys.exports.XYChartGenerator; raimund@3088: raimund@3088: public abstract class FixChartGenerator raimund@3088: extends XYChartGenerator raimund@3088: { raimund@3088: private static Logger logger = Logger.getLogger(FixChartGenerator.class); raimund@3088: sascha@3221: public static final Double INVALID_KM = Double.valueOf(-1d); sascha@3221: raimund@3088: public static final String XPATH_CHART_CURRENTKM = sascha@3221: "/art:action/art:attributes/art:currentKm/@art:km"; raimund@3088: raimund@3088: @Override raimund@3088: public void init(Document request, OutputStream out, CallContext context) { raimund@3088: super.init(request, out, context); raimund@3088: sascha@3221: Double currentKm = getCurrentKmFromRequest(request); sascha@3221: sascha@3221: if (logger.isDebugEnabled()) { sascha@3221: logger.debug("currentKm = " + currentKm); sascha@3221: } sascha@3221: sascha@3221: context.putContextValue("currentKm", currentKm); raimund@3088: } raimund@3088: sascha@3221: public static Double getCurrentKmFromRequest(Document request) { sascha@3221: sascha@3221: String km = XMLUtils.xpathString( raimund@3088: request, raimund@3088: XPATH_CHART_CURRENTKM, raimund@3088: ArtifactNamespaceContext.INSTANCE); raimund@3088: raimund@3088: if (km == null) { sascha@3221: return INVALID_KM; raimund@3088: } raimund@3088: raimund@3088: try { sascha@3221: return Double.valueOf(km); raimund@3088: } sascha@3221: catch (NumberFormatException nfe) { sascha@3221: return INVALID_KM; raimund@3088: } raimund@3088: } raimund@3088: } sascha@3221: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :