Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixChartGenerator.java @ 4241:49cb65d5932d
Improved the historical discharge calculation.
The calculation now creates new HistoricalWQKms (new subclass of WQKms). Those WQKms are used
to create new facets from (new) type 'HistoricalDischargeCurveFacet'. The chart generator is
improved to support those facets.
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 24 Oct 2012 14:34:35 +0200 |
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 : |