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() {

http://dive4elements.wald.intevation.org