annotate artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffHeightYearProcessor.java @ 7075:253d80af5b7f generator-refactoring

More Processor refactoring - Unify aandf aaf and bundle variable names to bundle - Factor out diagram inversion code - Add function with new signature to BedDiffYear and QOut processors
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 20 Sep 2013 16:25:43 +0200
parents 5c07024cdc24
children 8c70767028e1
rev   line source
6566
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
3 *
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
7 */
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
8
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
9 package org.dive4elements.river.exports.process;
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
11 import org.apache.log4j.Logger;
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
12 import org.jfree.data.xy.XYSeries;
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
13
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
15 import org.dive4elements.artifacts.CallContext;
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
16 import org.dive4elements.river.artifacts.model.FacetTypes;
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
17 import org.dive4elements.river.artifacts.model.minfo.BedDiffYearResult;
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
18 import org.dive4elements.river.exports.StyledSeriesBuilder;
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
19 import org.dive4elements.river.exports.DiagramGenerator;
6566
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
20 import org.dive4elements.river.exports.XYChartGenerator;
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
21 import org.dive4elements.river.jfree.StyledXYSeries;
6905
1b35b2ddfc28 Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6778
diff changeset
22 import org.dive4elements.river.themes.ThemeDocument;
6566
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
23
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
24
7058
5c07024cdc24 Fix indention / line length
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
25 public class BedDiffHeightYearProcessor
5c07024cdc24 Fix indention / line length
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
26 extends DefaultProcessor implements FacetTypes {
6566
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
27
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
28 private final static Logger logger =
6567
e8de5e135bf3 Moved BedDiffYearProcessor to BedDiffHeightYearProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6566
diff changeset
29 Logger.getLogger(BedDiffHeightYearProcessor.class);
6566
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
30
6778
cbe9ac4380a5 issue1439: Show line segments for points that have gaps on both sides. Small refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6771
diff changeset
31 protected static double GAP_TOLERANCE = 0.101d;
cbe9ac4380a5 issue1439: Show line segments for points that have gaps on both sides. Small refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6771
diff changeset
32
6566
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
33 @Override
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
34 public void doOut(
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
35 DiagramGenerator generator,
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
36 ArtifactAndFacet bundle,
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
37 ThemeDocument theme,
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
38 boolean visible) {
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
39 CallContext context = generator.getCallContext();
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
40 Object data = bundle.getData(context);
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
41 if (data instanceof BedDiffYearResult) {
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
42 BedDiffYearResult bData = (BedDiffYearResult) data;
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
43 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
44 StyledSeriesBuilder.addPoints(series, bData.getHeightPerYearData(), false, GAP_TOLERANCE);
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
45
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
46 generator.addAxisSeries(series, axisName, visible);
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
47 return;
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
48 }
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
49 // Should not happen if canHandle is correct
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
50 logger.error("Can't process " + data.getClass().getName() + " objects");
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
51 }
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
52
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
53 @Override
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
54 public void doOut(
6566
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
55 XYChartGenerator generator,
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
56 ArtifactAndFacet bundle,
6905
1b35b2ddfc28 Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6778
diff changeset
57 ThemeDocument theme,
6566
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
58 boolean visible,
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
59 int index
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
60 ) {
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61 CallContext context = generator.getCallContext();
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
62 Object data = bundle.getData(context);
6566
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
63 if (data instanceof BedDiffYearResult) {
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
64 BedDiffYearResult bData = (BedDiffYearResult) data;
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
65 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
66 StyledSeriesBuilder.addPoints(series, bData.getHeightPerYearData(), false, GAP_TOLERANCE);
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
67
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
68 generator.addAxisSeries(series, index, visible);
6566
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
69 return;
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
70 }
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
71 // Should not happen if canHandle is correct
6566
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
72 logger.error("Can't process " + data.getClass().getName() + " objects");
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
73 }
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
74
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
75 @Override
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
76 public boolean canHandle(String facetType) {
6583
e7e5b40cccc3 Commit omitted patch for BedDiffHeightYearProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
77 return BED_DIFFERENCE_HEIGHT_YEAR.equals(facetType) // from BedDiffYearHeight
e7e5b40cccc3 Commit omitted patch for BedDiffHeightYearProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
78 || BED_DIFFERENCE_HEIGHT_YEAR_FILTERED.equals(facetType) // from BedDiffYearHeight
e7e5b40cccc3 Commit omitted patch for BedDiffHeightYearProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
79 || BED_DIFFERENCE_YEAR.equals(facetType) // from BedDifferencesYear
e7e5b40cccc3 Commit omitted patch for BedDiffHeightYearProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
80 || BED_DIFFERENCE_YEAR_FILTERED.equals(facetType); // from BedDifferencesYear
6566
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81 }
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
83 protected void doBedDifferenceYearOut(XYChartGenerator generator,
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
84 BedDiffYearResult data,
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
85 ArtifactAndFacet bundle,
6905
1b35b2ddfc28 Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6778
diff changeset
86 ThemeDocument theme,
6566
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
87 boolean visible,
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
88 int axidx) {
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
89
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7058
diff changeset
90 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
6778
cbe9ac4380a5 issue1439: Show line segments for points that have gaps on both sides. Small refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6771
diff changeset
91 StyledSeriesBuilder.addPoints(series, data.getHeightPerYearData(), false, GAP_TOLERANCE);
6566
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
92
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
93 generator.addAxisSeries(series, axidx, visible);
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
94 }
88b9b666872e Minor refactoring to use processor and later use processor in WINFO-Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
95 }
6567
e8de5e135bf3 Moved BedDiffYearProcessor to BedDiffHeightYearProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6566
diff changeset
96 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org