Mercurial > dive4elements > river
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)); |