annotate artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractCalculationExportableResult.java @ 9188:3931e8741f53

Minor cleanup and bugfix concerning number formatters
author gernotbelger
date Thu, 28 Jun 2018 13:14:44 +0200
parents 9b2e46090099
children a4121ec450d6
rev   line source
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
2 * Software engineering by
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
5 *
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
9 */
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.common;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
11
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
12 import java.util.Collection;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
13
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
14 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
15
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
16 import net.sf.jasperreports.engine.JRException;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
17
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
18 /**
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
19 * @author Domenico Nardi Tironi
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
20 */
9170
9b2e46090099 tkh cast exception fix
gernotbelger
parents: 9150
diff changeset
21 public abstract class AbstractCalculationExportableResult<RESULTS extends AbstractCalculationResults<?>> extends AbstractCalculationResult {
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
22
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
23 private static final long serialVersionUID = 1L;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
24
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
25 public AbstractCalculationExportableResult(final String label, final Collection<ResultRow> rows) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
26 super(label, rows);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
27 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
28
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
29 public abstract void writeCSVHeader(ExportContextCSV exportContextCSV, final RESULTS results, final RiverInfo river);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
30
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
31 public final void writeCsv(final ExportContextCSV exportContextCSV, final RESULTS results) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
32
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
33 writeCSVResultMetadata(exportContextCSV, results);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
34 // wenn resultsmetadata null sind!? keine neue zeile
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
35 // writer.writeNext(new String[] { "" }); // break line in den Implementationen,
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
36 // weil es sein kann, dass KEINE ResultMetadata geschrieben werden; dann wäre eine Leerzeile überflüssig
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
37
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
38 /* now the value rows */
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
39 final Collection<ResultRow> rows = getRows();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
40 for (final ResultRow row : rows)
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
41 writeCSVRow(exportContextCSV, results, row);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
42 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
43
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
44 protected abstract void writeCSVResultMetadata(final ExportContextCSV exportContextCSV, final RESULTS results);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
45
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
46 protected void writeCSVRow(final ExportContextCSV exportContextCSV, final RESULTS results, final ResultRow row) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
47 final String[] formattedRow = formatCSVRow(exportContextCSV, results, row);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
48 exportContextCSV.writeCSVLine(formattedRow);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
49
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
50 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
51
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
52 protected abstract String[] formatCSVRow(ExportContextCSV exportContextCSV, final RESULTS results, final ResultRow row);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
53
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
54 protected abstract String[] formatPDFRow(ExportContextCSV exportContextPDF, RESULTS results, ResultRow row);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
55
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
56 public JasperDesigner addReport(final ExportContextCSV exportContextPDF, final RESULTS results, final JasperReporter reporter,
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
57 final MetaAndTableJRDataSource source) throws JRException {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
58
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
59 final JasperDesigner design = reporter.addReport(getJasperFile(), source);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
60 addJRTableHeader(exportContextPDF, source, results);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
61 addJRTableData(exportContextPDF, source, results);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
62 return design;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
63 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
64
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
65 protected abstract String getJasperFile();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
66
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
67 protected abstract void addJRTableHeader(ExportContextCSV exportContextPDF, MetaAndTableJRDataSource source, RESULTS results);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
68
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
69 private void addJRTableData(final ExportContextCSV exportContextPDF, final MetaAndTableJRDataSource source, final RESULTS results) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
70
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
71 final Collection<ResultRow> rows = getRows();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
72
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
73 for (final ResultRow row : rows) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
74
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
75 final String[] formattedRow = formatPDFRow(exportContextPDF, results, row);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
76 source.addData(formattedRow);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
77 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
78 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
79 }

http://dive4elements.wald.intevation.org