comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculationResult.java @ 9170:9b2e46090099

tkh cast exception fix gigantic refactoring 2
author gernotbelger
date Thu, 21 Jun 2018 14:32:11 +0200
parents 23945061daec
children 1614cb14308f
comparison
equal deleted inserted replaced
9169:1f94b3673ed3 9170:9b2e46090099
12 import java.text.NumberFormat; 12 import java.text.NumberFormat;
13 import java.util.ArrayList; 13 import java.util.ArrayList;
14 import java.util.Collection; 14 import java.util.Collection;
15 import java.util.List; 15 import java.util.List;
16 16
17 import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult;
18 import org.dive4elements.river.artifacts.common.AbstractCalculationResults;
19 import org.dive4elements.river.artifacts.common.ExportContextCSV; 17 import org.dive4elements.river.artifacts.common.ExportContextCSV;
20 import org.dive4elements.river.artifacts.common.GeneralResultType; 18 import org.dive4elements.river.artifacts.common.GeneralResultType;
21 import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource; 19 import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource;
22 import org.dive4elements.river.artifacts.common.ResultRow; 20 import org.dive4elements.river.artifacts.common.ResultRow;
21 import org.dive4elements.river.artifacts.sinfo.common.AbstractTkhCalculationResult;
23 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; 22 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType;
24 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; 23 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
25 import org.dive4elements.river.artifacts.sinfo.util.WstInfo; 24 import org.dive4elements.river.artifacts.sinfo.util.WstInfo;
26 25
27 /** 26 /**
28 * Contains the results of a {@link FloodDurationCalculation}. 27 * Contains the results of a {@link FloodDurationCalculation}.
29 * 28 *
30 * @author Gernot Belger 29 * @author Gernot Belger
31 */ 30 */
32 final class FloodDurationCalculationResult extends AbstractCalculationExportableResult { 31 final class FloodDurationCalculationResult extends AbstractTkhCalculationResult<FloodDurationCalculationResults> {
33 32
34 private static final long serialVersionUID = 1L; 33 private static final long serialVersionUID = 1L;
35 private final int waterlevelCount; // TODO: ggf 2 verschiedene Result-Klassen? 34 private final int waterlevelCount; // TODO: ggf 2 verschiedene Result-Klassen?
36 private final WstInfo wstInfo; 35 // private final WstInfo wstInfo;
37 private final int maxWaterlevelPdf = 3; 36 private final int maxWaterlevelPdf = 3;
38 37
39 private enum ExportMode { 38 private enum ExportMode {
40 pdf, csv 39 pdf, csv
41 } 40 }
42 41
43 public FloodDurationCalculationResult(final String label, final WstInfo wstInfo, final Collection<ResultRow> rows, final int waterlevelCount) { 42 public FloodDurationCalculationResult(final String label, final WstInfo wstInfo, final Collection<ResultRow> rows, final boolean hasTkh,
44 super(label, rows); 43 final int waterlevelCount) {
44 super(label, wstInfo, hasTkh, rows);
45 this.waterlevelCount = waterlevelCount; 45 this.waterlevelCount = waterlevelCount;
46 this.wstInfo = wstInfo; 46 // this.wstInfo = wstInfo;
47 } 47 }
48 48
49 @Override 49 @Override
50 public void writeCSVHeader(final ExportContextCSV exportContextCSV, final AbstractCalculationResults results, final RiverInfo river) { 50 public void writeCSVHeader(final ExportContextCSV exportContextCSV, final FloodDurationCalculationResults results, final RiverInfo river) {
51 51
52 final Collection<String> header = new ArrayList<>(99); 52 final Collection<String> header = new ArrayList<>(99);
53 53
54 header.add(exportContextCSV.formatCsvHeader(GeneralResultType.station)); 54 header.add(exportContextCSV.formatCsvHeader(GeneralResultType.station));
55 header.add(exportContextCSV.formatCsvHeader(SInfoResultType.riverside)); 55 header.add(exportContextCSV.formatCsvHeader(SInfoResultType.riverside));
77 77
78 exportContextCSV.writeCSVLine(header.toArray(new String[header.size()])); 78 exportContextCSV.writeCSVLine(header.toArray(new String[header.size()]));
79 } 79 }
80 80
81 @Override 81 @Override
82 protected void writeCSVResultMetadata(final ExportContextCSV exportContextCSV, final AbstractCalculationResults results) { 82 protected void writeCSVResultMetadata(final ExportContextCSV exportContextCSV, final FloodDurationCalculationResults results) {
83 83
84 exportContextCSV.writeCSVWaterlevelMetadata(this.wstInfo); // TODO: Abweichend vom Allgemeinen werden hier andere Felder benötigt bei den 84 exportContextCSV.writeCSVWaterlevelMetadata(super.getWst()); // -> export in super? -> TODO
85 // Wasserspiegellagen
86 exportContextCSV.writeBlankLine(); 85 exportContextCSV.writeBlankLine();
87 // writer.writeNext(new String[] { "" }); // break line 86 // writer.writeNext(new String[] { "" }); // break line
88 87
89 } 88 }
90 89
91 @Override 90 @Override
92 protected String[] formatCSVRow(final ExportContextCSV exportContextCSV, final AbstractCalculationResults results, final ResultRow row) { 91 protected String[] formatCSVRow(final ExportContextCSV exportContextCSV, final FloodDurationCalculationResults results, final ResultRow row) {
93 // TODO Auto-generated method stub 92 // TODO Auto-generated method stub
94 return formatRow(exportContextCSV, results, row, ExportMode.csv); 93 return formatRow(exportContextCSV, results, row, ExportMode.csv);
95 } 94 }
96 95
97 @Override 96 @Override
98 protected String[] formatPDFRow(final ExportContextCSV exportContextCSV, final AbstractCalculationResults results, final ResultRow row) { 97 protected String[] formatPDFRow(final ExportContextCSV exportContextCSV, final FloodDurationCalculationResults results, final ResultRow row) {
99 98
100 return formatRow(exportContextCSV, results, row, ExportMode.pdf); 99 return formatRow(exportContextCSV, results, row, ExportMode.pdf);
101 } 100 }
102 101
103 @Override 102 @Override
107 else 106 else
108 return "/jasper/templates/sinfo.floodduration2.jrxml"; 107 return "/jasper/templates/sinfo.floodduration2.jrxml";
109 } 108 }
110 109
111 @Override 110 @Override
112 protected void addJRTableHeader(final ExportContextCSV exportContextCSV, final MetaAndTableJRDataSource source, final AbstractCalculationResults results) { 111 protected void addJRTableHeader(final ExportContextCSV exportContextCSV, final MetaAndTableJRDataSource source,
112 final FloodDurationCalculationResults results) {
113 /* column headings */ 113 /* column headings */
114 exportContextCSV.addJRMetadata(source, "station_header", GeneralResultType.station); 114 exportContextCSV.addJRMetadata(source, "station_header", GeneralResultType.station);
115 exportContextCSV.addJRMetadata(source, "riverside_header", SInfoResultType.riverside); 115 exportContextCSV.addJRMetadata(source, "riverside_header", SInfoResultType.riverside);
116 exportContextCSV.addJRMetadata(source, "inundationduration_header", SInfoResultType.inundationduration); 116 exportContextCSV.addJRMetadata(source, "inundationduration_header", SInfoResultType.inundationduration);
117 exportContextCSV.addJRMetadata(source, "inundationduration_q_header", SInfoResultType.inundationdurationq); 117 exportContextCSV.addJRMetadata(source, "inundationduration_q_header", SInfoResultType.inundationdurationq);
147 147
148 public int getWaterlevelCount() { // der exporter muss daran, um spalten auszublenden 148 public int getWaterlevelCount() { // der exporter muss daran, um spalten auszublenden
149 return this.waterlevelCount; 149 return this.waterlevelCount;
150 } 150 }
151 151
152 private String[] formatRow(final ExportContextCSV exportContextCSV, final AbstractCalculationResults results, final ResultRow row, final ExportMode mode) { 152 private String[] formatRow(final ExportContextCSV exportContextCSV, final FloodDurationCalculationResults results, final ResultRow row,
153 final ExportMode mode) {
153 154
154 final Collection<String> lines = new ArrayList<>(99); 155 final Collection<String> lines = new ArrayList<>(99);
155 156
156 lines.add(exportContextCSV.formatRowValue(row, GeneralResultType.station)); 157 lines.add(exportContextCSV.formatRowValue(row, GeneralResultType.station));
157 lines.add(exportContextCSV.formatRowValue(row, SInfoResultType.riverside)); 158 lines.add(exportContextCSV.formatRowValue(row, SInfoResultType.riverside));

http://dive4elements.wald.intevation.org