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