annotate artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedQualityExporter.java @ 8656:3a9ce890e4c7

(issue1755) Uppercase diameter names in CSV Header
author Andre Heinecke <andre.heinecke@intevation.de>
date Thu, 02 Apr 2015 14:10:25 +0200
parents dbec49147f54
children 9d2a0827ec03
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
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7626
diff changeset
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) +
8656
3a9ce890e4c7 (issue1755) Uppercase diameter names in CSV Header
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
152 " - " + value.getName().toUpperCase() + " - " + d1 + "-" + d2);
8587
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 }

http://dive4elements.wald.intevation.org