Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractCalculationExportableResult.java @ 9155:9b4f5e61c02e
Changed to list of DateRange, added methods in DateRange to support year ranges
author | mschaefer |
---|---|
date | Tue, 19 Jun 2018 14:15:32 +0200 |
parents | 23945061daec |
children | 9b2e46090099 |
line wrap: on
line source
/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde * Software engineering by * Björnsen Beratende Ingenieure GmbH * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.artifacts.common; import java.util.Collection; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; import net.sf.jasperreports.engine.JRException; /** * @author Domenico Nardi Tironi */ public abstract class AbstractCalculationExportableResult<RESULTS extends AbstractCalculationResults> extends AbstractCalculationResult { private static final long serialVersionUID = 1L; public AbstractCalculationExportableResult(final String label, final Collection<ResultRow> rows) { super(label, rows); } public abstract void writeCSVHeader(ExportContextCSV exportContextCSV, final RESULTS results, final RiverInfo river); public final void writeCsv(final ExportContextCSV exportContextCSV, final RESULTS results) { writeCSVResultMetadata(exportContextCSV, results); // wenn resultsmetadata null sind!? keine neue zeile // writer.writeNext(new String[] { "" }); // break line in den Implementationen, // weil es sein kann, dass KEINE ResultMetadata geschrieben werden; dann wäre eine Leerzeile überflüssig /* now the value rows */ final Collection<ResultRow> rows = getRows(); for (final ResultRow row : rows) writeCSVRow(exportContextCSV, results, row); } protected abstract void writeCSVResultMetadata(final ExportContextCSV exportContextCSV, final RESULTS results); protected void writeCSVRow(final ExportContextCSV exportContextCSV, final RESULTS results, final ResultRow row) { final String[] formattedRow = formatCSVRow(exportContextCSV, results, row); exportContextCSV.writeCSVLine(formattedRow); } protected abstract String[] formatCSVRow(ExportContextCSV exportContextCSV, final RESULTS results, final ResultRow row); protected abstract String[] formatPDFRow(ExportContextCSV exportContextPDF, RESULTS results, ResultRow row); public JasperDesigner addReport(final ExportContextCSV exportContextPDF, final RESULTS results, final JasperReporter reporter, final MetaAndTableJRDataSource source) throws JRException { final JasperDesigner design = reporter.addReport(getJasperFile(), source); addJRTableHeader(exportContextPDF, source, results); addJRTableData(exportContextPDF, source, results); return design; } protected abstract String getJasperFile(); protected abstract void addJRTableHeader(ExportContextCSV exportContextPDF, MetaAndTableJRDataSource source, RESULTS results); private void addJRTableData(final ExportContextCSV exportContextPDF, final MetaAndTableJRDataSource source, final RESULTS results) { final Collection<ResultRow> rows = getRows(); for (final ResultRow row : rows) { final String[] formattedRow = formatPDFRow(exportContextPDF, results, row); source.addData(formattedRow); } } }