comparison flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixChartGenerator.java @ 3088:960307cf2adc

Moved current km to context and added an abstract generator for fix analysis charts. flys-artifacts/trunk@4686 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Mon, 18 Jun 2012 11:21:30 +0000
parents
children 06ae0258269b
comparison
equal deleted inserted replaced
3087:4a76da133144 3088:960307cf2adc
1 package de.intevation.flys.exports.fixings;
2
3 import org.w3c.dom.Element;
4 import org.w3c.dom.Document;
5
6 import org.apache.log4j.Logger;
7
8 import java.io.OutputStream;
9
10 import javax.xml.xpath.XPathConstants;
11
12 import de.intevation.artifacts.ArtifactNamespaceContext;
13 import de.intevation.artifacts.common.utils.XMLUtils;
14 import de.intevation.artifacts.CallContext;
15
16 import de.intevation.flys.exports.XYChartGenerator;
17
18 public abstract class FixChartGenerator
19 extends XYChartGenerator
20 {
21 private static Logger logger = Logger.getLogger(FixChartGenerator.class);
22
23 public static final String XPATH_CHART_CURRENTKM =
24 "/art:action/art:attributes/art:currentKm";
25
26
27 @Override
28 public void init(Document request, OutputStream out, CallContext context) {
29 super.init(request, out, context);
30
31 logger.debug("currentKm = " + new Double(getCurrentKmFromRequest()));
32 context.putContextValue("currentKm", new Double(getCurrentKmFromRequest()));
33 }
34
35 public double getCurrentKmFromRequest() {
36 Element km = (Element)XMLUtils.xpath(
37 request,
38 XPATH_CHART_CURRENTKM,
39 XPathConstants.NODE,
40 ArtifactNamespaceContext.INSTANCE);
41
42 if (km == null) {
43 return -1d;
44 }
45
46 String uri = ArtifactNamespaceContext.NAMESPACE_URI;
47
48 String currentKm = km.getAttributeNS(uri, "km");
49 try {
50 double d = Double.valueOf(currentKm).doubleValue();
51 return d;
52 }
53 catch(NumberFormatException nfe) {
54 return -1d;
55 }
56 }
57 }
58

http://dive4elements.wald.intevation.org