Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceExporter.java @ 7913:76b5add4f268
Added diff pair column to CSV export of bed height differences. TODO: same for PDF, adjust client.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Wed, 04 Jun 2014 12:53:28 +0200 |
parents | df9ac27d6b74 |
children | db1a2b14c32d |
comparison
equal
deleted
inserted
replaced
7912:06aca4e889b9 | 7913:76b5add4f268 |
---|---|
9 package org.dive4elements.river.exports.minfo; | 9 package org.dive4elements.river.exports.minfo; |
10 | 10 |
11 import java.io.IOException; | 11 import java.io.IOException; |
12 import java.io.OutputStream; | 12 import java.io.OutputStream; |
13 import java.text.NumberFormat; | 13 import java.text.NumberFormat; |
14 import java.util.LinkedList; | 14 import java.util.ArrayList; |
15 import java.util.List; | 15 import java.util.List; |
16 import java.util.Map; | 16 import java.util.Map; |
17 import java.util.HashMap; | 17 import java.util.HashMap; |
18 import java.util.Locale; | 18 import java.util.Locale; |
19 import java.util.Date; | 19 import java.util.Date; |
54 "export.minfo.beddifference.km"; | 54 "export.minfo.beddifference.km"; |
55 | 55 |
56 private static final String CSV_HEADER_DIFF = | 56 private static final String CSV_HEADER_DIFF = |
57 "export.minfo.beddifference.diff"; | 57 "export.minfo.beddifference.diff"; |
58 | 58 |
59 private static final String CSV_HEADER_DIFF_PAIR = | |
60 "export.minfo.beddifference.diff.pair"; | |
61 | |
59 private static final String CSV_HEADER_MORPH1 = | 62 private static final String CSV_HEADER_MORPH1 = |
60 "export.minfo.beddifference.morph1"; | 63 "export.minfo.beddifference.morph1"; |
61 | 64 |
62 private static final String CSV_HEADER_MORPH2 = | 65 private static final String CSV_HEADER_MORPH2 = |
63 "export.minfo.beddifference.morph2"; | 66 "export.minfo.beddifference.morph2"; |
84 NumberFormat kmf = Formatter.getCalculationKm(context.getMeta()); | 87 NumberFormat kmf = Formatter.getCalculationKm(context.getMeta()); |
85 NumberFormat mf = Formatter.getMeterFormat(context); | 88 NumberFormat mf = Formatter.getMeterFormat(context); |
86 for (BedDifferencesResult result : results) { | 89 for (BedDifferencesResult result : results) { |
87 if (result instanceof BedDiffYearResult) { | 90 if (result instanceof BedDiffYearResult) { |
88 BedDiffYearResult yResult = (BedDiffYearResult) result; | 91 BedDiffYearResult yResult = (BedDiffYearResult) result; |
92 String desc = result.getDiffDescription(); | |
89 double[][] kms = yResult.getDifferencesData(); | 93 double[][] kms = yResult.getDifferencesData(); |
90 double[][] morph1 = yResult.getMorphWidth1Data(); | 94 double[][] morph1 = yResult.getMorphWidth1Data(); |
91 double[][] morph2 = yResult.getMorphWidth2Data(); | 95 double[][] morph2 = yResult.getMorphWidth2Data(); |
92 for (int j = 0; j < kms[0].length; j++) { | 96 for (int j = 0; j < kms[0].length; j++) { |
93 writer.writeNext(new String[] { | 97 writer.writeNext(new String[] { |
94 kmf.format(kms[0][j]), | 98 kmf.format(kms[0][j]), |
95 mf.format(kms[1][j]), | 99 mf.format(kms[1][j]), |
96 mf.format(morph1[1][j]), | 100 mf.format(morph1[1][j]), |
97 mf.format(morph2[1][j])}); | 101 mf.format(morph2[1][j]), |
102 desc }); | |
98 } | 103 } |
99 } | 104 } |
100 else { | 105 else { |
101 double[][] kms = result.getDifferencesData(); | 106 double[][] kms = result.getDifferencesData(); |
107 String desc = result.getDiffDescription(); | |
102 for (int j = 0; j < kms[0].length; j++) { | 108 for (int j = 0; j < kms[0].length; j++) { |
103 writer.writeNext(new String[] { | 109 writer.writeNext(new String[] { |
104 kmf.format(kms[0][j]), | 110 kmf.format(kms[0][j]), |
105 mf.format(kms[1][j])}); | 111 mf.format(kms[1][j]), |
112 desc }); | |
106 } | 113 } |
107 } | 114 } |
108 } | 115 } |
109 } | 116 } |
110 | 117 |
155 | 162 |
156 | 163 |
157 protected void writeCSVHeader(CSVWriter writer) { | 164 protected void writeCSVHeader(CSVWriter writer) { |
158 logger.debug("writeCSVHeader()"); | 165 logger.debug("writeCSVHeader()"); |
159 | 166 |
160 List<String> header = new LinkedList<String>(); | 167 List<String> header = new ArrayList<String>(); |
161 if (results != null) { | 168 if (results != null) { |
162 header.add(msg(CSV_HEADER_KM, "km")); | 169 header.add(msg(CSV_HEADER_KM, "km")); |
163 header.add(msg(CSV_HEADER_DIFF, "cm")); | 170 header.add(msg(CSV_HEADER_DIFF, "cm")); |
164 if (results.length > 0 && | 171 if (results.length > 0 && |
165 results[0] instanceof BedDiffYearResult) { | 172 results[0] instanceof BedDiffYearResult) { |
166 header.add(msg(CSV_HEADER_MORPH1, "morph width minuend [m]")); | 173 header.add(msg(CSV_HEADER_MORPH1, "morph width minuend [m]")); |
167 header.add(msg(CSV_HEADER_MORPH2, "morph width subtrahend [m]")); | 174 header.add(msg(CSV_HEADER_MORPH2, "morph width subtrahend [m]")); |
168 } | 175 } |
176 header.add(msg(CSV_HEADER_DIFF_PAIR, "difference pair")); | |
169 } | 177 } |
170 writer.writeNext(header.toArray(new String[header.size()])); | 178 writer.writeNext(header.toArray(new String[header.size()])); |
171 } | 179 } |
172 | 180 |
173 protected BedDifferenceJRDataSource createJRData() { | 181 protected BedDifferenceJRDataSource createJRData() { |