annotate artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractCalculationExportableResult.java @ 9195:a4121ec450d6

'ca.'-issue ExportContextCSV+PDF separated uinfo.inundationduration url export
author gernotbelger
date Fri, 29 Jun 2018 14:52:54 +0200
parents 9b2e46090099
children 49c0b687d22f
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 */
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
21 public abstract class AbstractCalculationExportableResult 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
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
29 public abstract void writeCSVHeader(ExportContextCSV exportContextCSV, final RiverInfo river);
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
30
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
31 public final void writeCsv(final ExportContextCSV exportContextCSV) {
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
32
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
33 writeCSVResultMetadata(exportContextCSV);
9150
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)
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
41 writeCSVRow(exportContextCSV, row);
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
42 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
43
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
44 protected abstract void writeCSVResultMetadata(final ExportContextCSV exportContextCSV);
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
45
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
46 protected void writeCSVRow(final ExportContextCSV exportContextCSV, final ResultRow row) {
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
47 final String[] formattedRow = formatCSVRow(exportContextCSV, row);
9150
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
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
51 protected abstract String[] formatCSVRow(ExportContextCSV exportContextCSV, final ResultRow row);
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
52
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
53 protected abstract String[] formatPDFRow(ExportContextPDF exportContextPDF, ResultRow row);
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
54
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
55 public JasperDesigner addReport(final ExportContextPDF exportContext, final JasperReporter reporter, final MetaAndTableJRDataSource source)
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
56 throws JRException {
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
57
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
58 final JasperDesigner design = reporter.addReport(getJasperFile(), source);
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
59 addJRTableHeader(exportContext, source);
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
60 addJRTableData(exportContext, source);
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
61 return design;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
62 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
63
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
64 protected abstract String getJasperFile();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
65
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
66 protected abstract void addJRTableHeader(ExportContextPDF exportContext, MetaAndTableJRDataSource source);
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
67
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
68 private void addJRTableData(final ExportContextPDF exportContext, final MetaAndTableJRDataSource source) {
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
69
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
70 final Collection<ResultRow> rows = getRows();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
71
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
72 for (final ResultRow row : rows) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
73
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents: 9170
diff changeset
74 final String[] formattedRow = formatPDFRow(exportContext, row);
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
75 source.addData(formattedRow);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
76 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
77 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
78 }

http://dive4elements.wald.intevation.org