Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculationResult.java @ 9150:23945061daec
gigantic refactoring: exporter, result, results
to support multiple jaspers -> collisions
author | gernotbelger |
---|---|
date | Thu, 14 Jun 2018 16:56:31 +0200 |
parents | fb9430250899 |
children | a4121ec450d6 |
comparison
equal
deleted
inserted
replaced
9149:5be112fba832 | 9150:23945061daec |
---|---|
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde | 1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde |
2 * Software engineering by | 2 * Software engineering by |
3 * Björnsen Beratende Ingenieure GmbH | 3 * Björnsen Beratende Ingenieure GmbH |
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt | 4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt |
5 * | 5 * |
6 * This file is Free Software under the GNU AGPL (>=v3) | 6 * This file is Free Software under the GNU AGPL (>=v3) |
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the | 7 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
8 * documentation coming with Dive4Elements River for details. | 8 * documentation coming with Dive4Elements River for details. |
9 */ | 9 */ |
10 package org.dive4elements.river.artifacts.uinfo.salix; | 10 package org.dive4elements.river.artifacts.uinfo.salix; |
11 | 11 |
12 import java.util.ArrayList; | |
12 import java.util.Collection; | 13 import java.util.Collection; |
13 | 14 |
14 import org.dive4elements.river.artifacts.common.AbstractCalculationResult; | 15 import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; |
16 import org.dive4elements.river.artifacts.common.ExportContextCSV; | |
17 import org.dive4elements.river.artifacts.common.GeneralResultType; | |
18 import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource; | |
15 import org.dive4elements.river.artifacts.common.ResultRow; | 19 import org.dive4elements.river.artifacts.common.ResultRow; |
20 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; | |
16 import org.dive4elements.river.artifacts.sinfo.util.WstInfo; | 21 import org.dive4elements.river.artifacts.sinfo.util.WstInfo; |
22 import org.dive4elements.river.artifacts.uinfo.commons.UInfoResultType; | |
17 | 23 |
18 /** | 24 /** |
19 * @author Domenico Nardi Tironi | 25 * @author Domenico Nardi Tironi |
20 */ | 26 */ |
21 final class SalixLineCalculationResult extends AbstractCalculationResult { | 27 final class SalixLineCalculationResult extends AbstractCalculationExportableResult<SalixLineCalculationResults> { |
22 | 28 |
23 private static final long serialVersionUID = 1L; | 29 private static final long serialVersionUID = 1L; |
30 private static final String JASPER_FILE = "/jasper/templates/uinfo.salixline.jrxml"; | |
24 | 31 |
25 public SalixLineCalculationResult(final String label, final WstInfo wst, final Collection< ResultRow> rows) { | 32 public SalixLineCalculationResult(final String label, final WstInfo wst, final Collection<ResultRow> rows) { |
26 super(label, rows); | 33 super(label, rows); |
27 } | 34 } |
28 | 35 |
36 @Override | |
37 public void writeCSVHeader(final ExportContextCSV exportContextCSV, final SalixLineCalculationResults results, final RiverInfo river) { | |
38 | |
39 final Collection<String> header = new ArrayList<>(4); | |
40 | |
41 header.add(exportContextCSV.formatCsvHeader(GeneralResultType.station)); | |
42 // header.add(msgUnit(SInfoResultType.flowdepth, SInfoResultType.flowdepth.getUnit())); | |
43 | |
44 header.add(exportContextCSV.formatCsvHeader(UInfoResultType.salixline)); | |
45 // wenn "historisch" gewählt wurde, nur "historisch" anzeigen; sonst für jeden scen-wert ne neue Spalte und "hist" | |
46 // ausblenden!...!..!! | |
47 header.add(exportContextCSV.formatCsvHeader(UInfoResultType.salixlinehist)); | |
48 header.add(exportContextCSV.formatCsvHeader(UInfoResultType.salixlinescen)); | |
49 exportContextCSV.writeCSVLine(header.toArray(new String[header.size()])); | |
50 | |
51 } | |
52 | |
53 @Override | |
54 protected void writeCSVResultMetadata(final ExportContextCSV exportContextCSV, final SalixLineCalculationResults results) { | |
55 writeRegionalEffectsCSVMetadata(exportContextCSV); | |
56 exportContextCSV.writeBlankLine();// writer.writeNext(new String[] { "" }); // break line | |
57 writeExtendedRegionalEffectsCSVMetadata(exportContextCSV); | |
58 exportContextCSV.writeBlankLine(); | |
59 writeHistoricalViewCSVMetadata(exportContextCSV); | |
60 exportContextCSV.writeBlankLine(); | |
61 | |
62 } | |
63 | |
64 @Override | |
65 protected String[] formatCSVRow(final ExportContextCSV exportContextCSV, final SalixLineCalculationResults results, final ResultRow row) { | |
66 | |
67 return formatRow(exportContextCSV, results, row); | |
68 } | |
69 | |
70 @Override | |
71 protected String[] formatPDFRow(final ExportContextCSV exportContextPDF, final SalixLineCalculationResults results, final ResultRow row) { | |
72 | |
73 return formatRow(exportContextPDF, results, row); | |
74 } | |
75 | |
76 @Override | |
77 protected String getJasperFile() { | |
78 | |
79 return this.JASPER_FILE; | |
80 } | |
81 | |
82 @Override | |
83 protected void addJRTableHeader(final ExportContextCSV exportContextPDF, final MetaAndTableJRDataSource source, final SalixLineCalculationResults results) { | |
84 | |
85 /* additional column headings */ | |
86 exportContextPDF.addJRMetadata(source, "station_header", GeneralResultType.station); | |
87 | |
88 exportContextPDF.addJRMetadata(source, "salix_line", UInfoResultType.salixline); | |
89 // wenn "historisch" gewählt wurde, nur "historisch" anzeigen; sonst für jeden scen-wert ne neue Spalte und "hist" | |
90 // ausblenden!...!..!! | |
91 exportContextPDF.addJRMetadata(source, "salix_line_hist", UInfoResultType.salixlinehist); | |
92 exportContextPDF.addJRMetadata(source, "salix_line_scen", UInfoResultType.salixlinescen); | |
93 | |
94 } | |
95 | |
96 private String[] formatRow(final ExportContextCSV context, final SalixLineCalculationResults results, final ResultRow row) { | |
97 | |
98 final Collection<String> lines = new ArrayList<>(3); | |
99 | |
100 lines.add(context.formatRowValue(row, GeneralResultType.station)); | |
101 lines.add(context.formatRowValue(row, UInfoResultType.salixline)); | |
102 | |
103 // wenn "historisch" gewählt wurde, nur "historisch" anzeigen; sonst für jeden scen-wert ne neue Spalte und "hist" | |
104 // ausblenden!...!..!! | |
105 lines.add(context.formatRowValue(row, UInfoResultType.salixlinehist)); | |
106 lines.add(context.formatRowValue(row, UInfoResultType.salixlinescen)); | |
107 return lines.toArray(new String[lines.size()]); | |
108 } | |
109 | |
110 private void writeRegionalEffectsCSVMetadata(final ExportContextCSV exportContextCSV) { | |
111 final String main = "uinfo.export.csv.meta.header.salix.regional"; | |
112 // "##Regional wirkende Eingriffe" | |
113 exportContextCSV.writeCSVMetaEntry(main); | |
114 writeRegionalCommonCSVMeta(exportContextCSV); | |
115 } | |
116 | |
117 private void writeRegionalCommonCSVMeta(final ExportContextCSV exportContextCSV) { | |
118 final String main = "uinfo.export.csv.meta.header.salix"; | |
119 // "# Szenariotyp: " | |
120 exportContextCSV.writeCSVMetaEntry(main + ".szenariotyp"); | |
121 // "# Teilabschnitt: " | |
122 exportContextCSV.writeCSVMetaEntry(main + ".teilabschnitt"); | |
123 // "# Mittelwasserspiegellagenänderung: " | |
124 exportContextCSV.writeCSVMetaEntry(main + ".mwspiegellaenderung"); | |
125 } | |
126 | |
127 private void writeExtendedRegionalEffectsCSVMetadata(final ExportContextCSV exportContextCSV) { | |
128 final String main = "uinfo.export.csv.meta.header.salix.regionalextended"; | |
129 // "##Überregional wirkende Eingriffe" | |
130 exportContextCSV.writeCSVMetaEntry(main); | |
131 | |
132 writeRegionalCommonCSVMeta(exportContextCSV); | |
133 } | |
134 | |
135 private void writeHistoricalViewCSVMetadata(final ExportContextCSV exportContextCSV) { | |
136 final String main = "uinfo.export.csv.meta.header.salix.historical"; | |
137 // "##Historische Betrachtung" | |
138 exportContextCSV.writeCSVMetaEntry(main); | |
139 | |
140 final String mainSub = "uinfo.export.csv.meta.header.salix"; | |
141 // "# Szenariotyp: " | |
142 exportContextCSV.writeCSVMetaEntry(mainSub + ".szenariotyp"); | |
143 // "# Teilabschnitt: " | |
144 exportContextCSV.writeCSVMetaEntry(mainSub + ".teilabschnitt"); | |
145 | |
146 // "# Art des Zeitraums: " | |
147 exportContextCSV.writeCSVMetaEntry(main + ".zeitart"); | |
148 // "# Historischer Zeitpunkt: " | |
149 exportContextCSV.writeCSVMetaEntry(main + ".zeitpunkt"); | |
150 } | |
29 } | 151 } |