Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractCalculationExportableResult.java @ 9312:740d65e4aa14
Q [m³/s] one message
author | gernotbelger |
---|---|
date | Thu, 26 Jul 2018 15:54:20 +0200 |
parents | a4121ec450d6 |
children | 49c0b687d22f |
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 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 RiverInfo river); public final void writeCsv(final ExportContextCSV exportContextCSV) { writeCSVResultMetadata(exportContextCSV); // 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, row); } protected abstract void writeCSVResultMetadata(final ExportContextCSV exportContextCSV); protected void writeCSVRow(final ExportContextCSV exportContextCSV, final ResultRow row) { final String[] formattedRow = formatCSVRow(exportContextCSV, row); exportContextCSV.writeCSVLine(formattedRow); } protected abstract String[] formatCSVRow(ExportContextCSV exportContextCSV, final ResultRow row); protected abstract String[] formatPDFRow(ExportContextPDF exportContextPDF, ResultRow row); public JasperDesigner addReport(final ExportContextPDF exportContext, final JasperReporter reporter, final MetaAndTableJRDataSource source) throws JRException { final JasperDesigner design = reporter.addReport(getJasperFile(), source); addJRTableHeader(exportContext, source); addJRTableData(exportContext, source); return design; } protected abstract String getJasperFile(); protected abstract void addJRTableHeader(ExportContextPDF exportContext, MetaAndTableJRDataSource source); private void addJRTableData(final ExportContextPDF exportContext, final MetaAndTableJRDataSource source) { final Collection<ResultRow> rows = getRows(); for (final ResultRow row : rows) { final String[] formattedRow = formatPDFRow(exportContext, row); source.addData(formattedRow); } } }