annotate flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixChartGenerator.java @ 4377:512a3af69e18

Extract common generator method from FixLongitudinalSectionGenerator The extracted methods and code can be reused for generating charts for bed differences if fixanalysis data is loaded via the datacache.
author Björn Ricks <bjoern.ricks@intevation.de>
date Fri, 02 Nov 2012 15:47:15 +0100
parents b81f328da582
children dd8a63002fb8
rev   line source
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.exports.fixings;
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2
3406
3732e1bab0aa Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents: 3221
diff changeset
3 import de.intevation.artifacts.ArtifactNamespaceContext;
3732e1bab0aa Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents: 3221
diff changeset
4 import de.intevation.artifacts.CallContext;
3732e1bab0aa Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents: 3221
diff changeset
5 import de.intevation.artifacts.common.utils.XMLUtils;
3732e1bab0aa Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents: 3221
diff changeset
6 import de.intevation.flys.exports.XYChartGenerator;
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 import java.io.OutputStream;
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9
3406
3732e1bab0aa Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents: 3221
diff changeset
10 import org.apache.log4j.Logger;
3732e1bab0aa Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents: 3221
diff changeset
11 import org.w3c.dom.Document;
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12
3723
7b14d00bca8a Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3406
diff changeset
13 /**
7b14d00bca8a Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3406
diff changeset
14 * Base class for FixChartGenerator.
7b14d00bca8a Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3406
diff changeset
15 */
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 public abstract class FixChartGenerator
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 extends XYChartGenerator
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 {
3723
7b14d00bca8a Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3406
diff changeset
19 /** Private logger. */
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 private static Logger logger = Logger.getLogger(FixChartGenerator.class);
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21
3727
b81f328da582 Removed code duplication.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3723
diff changeset
22 public static final Double INVALID_KM = Double.valueOf(-1d);
3406
3732e1bab0aa Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents: 3221
diff changeset
23 public static final String CURRENT_KM = "currentKm";
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 public static final String XPATH_CHART_CURRENTKM =
3221
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
25 "/art:action/art:attributes/art:currentKm/@art:km";
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 @Override
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 public void init(Document request, OutputStream out, CallContext context) {
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 super.init(request, out, context);
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30
3727
b81f328da582 Removed code duplication.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3723
diff changeset
31 Double currentKm = getCurrentKmFromRequest(request);
3221
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
32
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
33 if (logger.isDebugEnabled()) {
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
34 logger.debug("currentKm = " + currentKm);
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
35 }
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
36
3406
3732e1bab0aa Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents: 3221
diff changeset
37 context.putContextValue(CURRENT_KM, currentKm);
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 }
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39
3727
b81f328da582 Removed code duplication.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3723
diff changeset
40 public static final Double getCurrentKmFromRequest(Document request) {
3221
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
41
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
42 String km = XMLUtils.xpathString(
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 request,
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 XPATH_CHART_CURRENTKM,
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 ArtifactNamespaceContext.INSTANCE);
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 if (km == null) {
3221
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
48 return INVALID_KM;
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 }
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 try {
3221
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
52 return Double.valueOf(km);
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 }
3221
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
54 catch (NumberFormatException nfe) {
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
55 return INVALID_KM;
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 }
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 }
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 }
3221
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
59 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org