Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedQualityExporter.java @ 8653:dbec49147f54
(issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Due to the fact that data can contain NaN's which will be filtered out
before creating the interpolator this requires the actual check
for interpolatable data when data is set in the ResultValue
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Wed, 01 Apr 2015 17:10:03 +0200 |
parents | 0d15ebafbd0e |
children | 3a9ce890e4c7 |
rev | line source |
---|---|
8581
073ea4bcea58
(issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013, 2015 by Bundesanstalt für Gewässerkunde |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3974
diff
changeset
|
9 package org.dive4elements.river.exports.minfo; |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
11 import java.io.IOException; |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 import java.io.OutputStream; |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 import java.text.DateFormat; |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 import java.text.NumberFormat; |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import java.util.Arrays; |
7254
fe32a7f9655e
Reduce usage of careless 'for (int i = 0; i < x.size(); i++)' pattern.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7088
diff
changeset
|
16 import java.util.ArrayList; |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 import java.util.List; |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 import org.apache.log4j.Logger; |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
20 |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 import au.com.bytecode.opencsv.CSVWriter; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3974
diff
changeset
|
22 import org.dive4elements.river.artifacts.model.CalculationResult; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3974
diff
changeset
|
23 import org.dive4elements.river.artifacts.model.minfo.BedQualityResult; |
8587
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
24 import org.dive4elements.river.artifacts.model.minfo.BedQualityResultValue; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3974
diff
changeset
|
25 import org.dive4elements.river.exports.AbstractExporter; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3974
diff
changeset
|
26 import org.dive4elements.river.utils.Formatter; |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
27 |
8581
073ea4bcea58
(issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
28 import org.dive4elements.river.artifacts.access.RangeAccess; |
073ea4bcea58
(issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
29 import org.dive4elements.river.artifacts.D4EArtifact; |
073ea4bcea58
(issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
30 |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
31 |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
32 public class BedQualityExporter |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 extends AbstractExporter |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7628
diff
changeset
|
35 /** Private log. */ |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7628
diff
changeset
|
36 private static Logger log = Logger.getLogger(BedQualityExporter.class); |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 |
7610
d72459b90397
Cosmetics, removed obsolete code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7254
diff
changeset
|
38 private static final String CSV_HEADER_KM = |
d72459b90397
Cosmetics, removed obsolete code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7254
diff
changeset
|
39 "export.minfo.bedquality.km"; |
8587
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
40 private static final String CSV_HEADER_BASE = |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
41 "export.minfo.bedquality"; |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 private BedQualityResult[] results; |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 |
7077
0a337f0005c2
Extended init() of OutGenerator to take name of the out to serve.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6359
diff
changeset
|
45 public BedQualityExporter() { |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 results = new BedQualityResult[0]; |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
48 |
7627 | 49 /** Create double[] containing the data for rows in csv. */ |
7611
a11985bb743f
BedQualityExporter: Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7610
diff
changeset
|
50 private List<double[]> createDataRows() { |
8581
073ea4bcea58
(issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
51 |
073ea4bcea58
(issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
52 double[] kms = new RangeAccess((D4EArtifact) master).getKmSteps(); |
7625
e999a920f0e5
Refactoring: extracted method
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7613
diff
changeset
|
53 |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
54 int cols = 1; |
8587
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
55 for (BedQualityResult result: results) { |
8653
dbec49147f54
(issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8640
diff
changeset
|
56 for (BedQualityResultValue value :result.getValues()) { |
dbec49147f54
(issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8640
diff
changeset
|
57 if (value.isInterpolateable()) { |
dbec49147f54
(issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8640
diff
changeset
|
58 /* Only add results that can be interpolated */ |
dbec49147f54
(issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8640
diff
changeset
|
59 cols++; |
dbec49147f54
(issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8640
diff
changeset
|
60 } |
dbec49147f54
(issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8640
diff
changeset
|
61 } |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 } |
8640
0d15ebafbd0e
(issue1755) Do not print empty rows for empty results in bedquality export
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8595
diff
changeset
|
63 if (cols == 1) { |
0d15ebafbd0e
(issue1755) Do not print empty rows for empty results in bedquality export
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8595
diff
changeset
|
64 return new ArrayList<double[]>(); |
0d15ebafbd0e
(issue1755) Do not print empty rows for empty results in bedquality export
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8595
diff
changeset
|
65 } |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
66 |
8581
073ea4bcea58
(issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
67 List<double[]> rows = new ArrayList<double[]>(kms.length); |
073ea4bcea58
(issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
68 for (double km: kms) { |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 double[] row = new double[cols]; |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
70 row[0] = km; |
8595
cc1c644ed30f
(issue1755) Fix export order of multiple result columns
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8588
diff
changeset
|
71 int resultOffset = 1; |
8587
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
72 for (BedQualityResult result: results) { |
8595
cc1c644ed30f
(issue1755) Fix export order of multiple result columns
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8588
diff
changeset
|
73 int i = resultOffset; |
8587
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
74 for (BedQualityResultValue value: result.getValues()) { |
8653
dbec49147f54
(issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8640
diff
changeset
|
75 if (value.isInterpolateable()) { |
dbec49147f54
(issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8640
diff
changeset
|
76 row[i++] = value.getDataInterpolated(km); |
dbec49147f54
(issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8640
diff
changeset
|
77 } |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 } |
8595
cc1c644ed30f
(issue1755) Fix export order of multiple result columns
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8588
diff
changeset
|
79 resultOffset = i; |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
80 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
81 rows.add(row); |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
82 } |
7611
a11985bb743f
BedQualityExporter: Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7610
diff
changeset
|
83 |
a11985bb743f
BedQualityExporter: Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7610
diff
changeset
|
84 return rows; |
a11985bb743f
BedQualityExporter: Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7610
diff
changeset
|
85 } |
a11985bb743f
BedQualityExporter: Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7610
diff
changeset
|
86 |
a11985bb743f
BedQualityExporter: Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7610
diff
changeset
|
87 @Override |
a11985bb743f
BedQualityExporter: Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7610
diff
changeset
|
88 protected void writeCSVData(CSVWriter writer) throws IOException { |
a11985bb743f
BedQualityExporter: Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7610
diff
changeset
|
89 writeCSVHeader(writer); |
a11985bb743f
BedQualityExporter: Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7610
diff
changeset
|
90 |
a11985bb743f
BedQualityExporter: Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7610
diff
changeset
|
91 NumberFormat nf = Formatter.getFormatter(context, 1, 3); |
a11985bb743f
BedQualityExporter: Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7610
diff
changeset
|
92 |
a11985bb743f
BedQualityExporter: Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7610
diff
changeset
|
93 for (double[] d : createDataRows()) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7628
diff
changeset
|
94 log.debug("row + " + Arrays.toString(d)); |
7254
fe32a7f9655e
Reduce usage of careless 'for (int i = 0; i < x.size(); i++)' pattern.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7088
diff
changeset
|
95 List<String> cells = new ArrayList<String>(d.length); |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
96 for (int i = 0; i < d.length; i++) { |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
97 if (!Double.isNaN(d[i])) { |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
98 cells.add(nf.format(d[i])); |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
99 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
100 else { |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
101 cells.add(""); |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
102 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
103 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
104 writer.writeNext(cells.toArray(new String[cells.size()])); |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
105 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
106 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
107 |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
108 @Override |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
109 protected void writePDF(OutputStream out) { |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
110 // TODO Auto-generated method stub |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
111 |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
112 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
113 |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
114 @Override |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
115 protected void addData(Object data) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7628
diff
changeset
|
116 log.debug("addData()"); |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
117 if (!(data instanceof CalculationResult)) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7628
diff
changeset
|
118 log.warn("Invalid data type."); |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
119 return; |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
120 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
121 Object[] d = (Object[])((CalculationResult)data).getData(); |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
122 |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
123 if (!(d instanceof BedQualityResult[])) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7628
diff
changeset
|
124 log.warn("Invalid result object."); |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
125 return; |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
126 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
127 results = (BedQualityResult[])d; |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
128 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
129 |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
130 protected void writeCSVHeader(CSVWriter writer) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7628
diff
changeset
|
131 log.debug("writeCSVHeader()"); |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
132 |
7254
fe32a7f9655e
Reduce usage of careless 'for (int i = 0; i < x.size(); i++)' pattern.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7088
diff
changeset
|
133 List<String> header = new ArrayList<String>(); |
8587
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
134 if (results == null) { |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
135 writer.writeNext(header.toArray(new String[header.size()])); |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
136 return; |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
137 } |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
138 |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
139 header.add(msg(CSV_HEADER_KM, "km")); |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
140 DateFormat df = Formatter.getDateFormatter(context.getMeta(), "dd.MM.yyyy"); |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
141 for (BedQualityResult result: results) { |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
142 String d1 = df.format(result.getDateRange().getFrom()); |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
143 String d2 = df.format(result.getDateRange().getTo()); |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
144 for (BedQualityResultValue value: result.getValues()) { |
8653
dbec49147f54
(issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8640
diff
changeset
|
145 if (!value.isInterpolateable()) { |
dbec49147f54
(issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8640
diff
changeset
|
146 continue; |
dbec49147f54
(issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8640
diff
changeset
|
147 } |
8587
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
148 String i18n; |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
149 if (value.isDiameterResult()) { |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
150 i18n = CSV_HEADER_BASE + ".diameter." + value.getType(); |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
151 header.add(msg(i18n, i18n) + |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
152 " - " + value.getName() + " - " + d1 + "-" + d2); |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
153 } else { |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
154 i18n = CSV_HEADER_BASE + "." + value.getName() + "." + value.getType(); |
07c9ac22f611
(issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8581
diff
changeset
|
155 header.add(msg(i18n, i18n) + " - " + d1 + "-" + d2); |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
156 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
157 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
158 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
159 writer.writeNext(header.toArray(new String[header.size()])); |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
160 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
161 } |