mschaefer@9444: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9332: * Software engineering by gernotbelger@9332: * Björnsen Beratende Ingenieure GmbH gernotbelger@9332: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@9332: * gernotbelger@9332: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9332: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9332: * documentation coming with Dive4Elements River for details. gernotbelger@9332: */ gernotbelger@9332: package org.dive4elements.river.artifacts.bundu.bezugswst; gernotbelger@9332: gernotbelger@9332: import java.util.ArrayList; gernotbelger@9332: import java.util.Collection; gernotbelger@9332: gernotbelger@9332: import org.dive4elements.river.artifacts.bundu.BunduResultType; gernotbelger@9332: import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; gernotbelger@9332: import org.dive4elements.river.artifacts.common.AbstractExportContext; gernotbelger@9332: import org.dive4elements.river.artifacts.common.ExportContextCSV; gernotbelger@9332: import org.dive4elements.river.artifacts.common.ExportContextPDF; gernotbelger@9332: import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource; gernotbelger@9332: import org.dive4elements.river.artifacts.common.ResultRow; gernotbelger@9332: import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; gernotbelger@9332: gernotbelger@9332: /** gernotbelger@9332: * Contains the results of a //TODO LINK{@link BezugswstCalculation}. gernotbelger@9332: * gernotbelger@9332: * @author Gernot Belger gernotbelger@9332: */ gernotbelger@9332: final class BezugswstMissVolCalculationResult3 extends AbstractCalculationExportableResult implements BunduWstExporter.MissResultType { gernotbelger@9332: gernotbelger@9332: private static final long serialVersionUID = 1L; gernotbelger@9332: gernotbelger@9332: private static final String JASPER_FILE = "/jasper/templates/bundu.bezugswst.result3.jrxml"; gernotbelger@9332: gernotbelger@9332: public BezugswstMissVolCalculationResult3(final String label, final Collection rows) { gernotbelger@9332: super(label, rows); gernotbelger@9332: gernotbelger@9332: } gernotbelger@9332: gernotbelger@9332: @Override gernotbelger@9332: protected void writeCSVResultMetadata(final ExportContextCSV exportContextCSV) { gernotbelger@9332: // no metadata gernotbelger@9332: } gernotbelger@9332: gernotbelger@9332: @Override gernotbelger@9332: protected String getJasperFile() { gernotbelger@9332: return JASPER_FILE; gernotbelger@9332: } gernotbelger@9332: gernotbelger@9332: protected String[] formatRow(final AbstractExportContext exportContext, final ResultRow row) { gernotbelger@9332: gernotbelger@9332: final Collection lines = new ArrayList<>(20); gernotbelger@9332: mschaefer@9444: lines.add(exportContext.formatRowValue(row, BunduResultType.missStationRangeFrom)); mschaefer@9444: lines.add(exportContext.formatRowValue(row, BunduResultType.missStationRangeTo)); mschaefer@9432: lines.add(exportContext.formatRowValue(row, BunduResultType.missVolumeTotal)); mschaefer@9432: lines.add(exportContext.formatRowValue(row, BunduResultType.missMassTotal)); gernotbelger@9332: return lines.toArray(new String[lines.size()]); gernotbelger@9332: } gernotbelger@9332: gernotbelger@9332: @Override gernotbelger@9332: public void writeCSVHeader(final ExportContextCSV exportContextCSV, final RiverInfo river) { gernotbelger@9332: mschaefer@9444: final int colSize = 4; gernotbelger@9332: exportContextCSV.writeTitleForTabs("bundu.export.csv.title.bezugswst.result3", colSize); // Voraussetzung für Tabs ist, dass der Titel vor den Headern gernotbelger@9332: final Collection header = new ArrayList<>(colSize); gernotbelger@9332: mschaefer@9444: header.add(exportContextCSV.formatCsvHeader(BunduResultType.missStationRangeFrom)); mschaefer@9444: header.add(exportContextCSV.formatCsvHeader(BunduResultType.missStationRangeTo)); mschaefer@9432: header.add(exportContextCSV.formatCsvHeader(BunduResultType.missVolumeTotal)); mschaefer@9432: header.add(exportContextCSV.formatCsvHeader(BunduResultType.missMassTotal)); gernotbelger@9332: gernotbelger@9332: exportContextCSV.writeCSVLine(header.toArray(new String[header.size()])); gernotbelger@9332: gernotbelger@9332: } gernotbelger@9332: gernotbelger@9332: @Override gernotbelger@9332: protected String[] formatCSVRow(final ExportContextCSV exportContextCSV, final ResultRow row) { gernotbelger@9332: gernotbelger@9332: return this.formatRow(exportContextCSV, row); gernotbelger@9332: } gernotbelger@9332: gernotbelger@9332: @Override gernotbelger@9332: protected String[] formatPDFRow(final ExportContextPDF exportContextPDF, final ResultRow row) { gernotbelger@9332: gernotbelger@9332: return this.formatRow(exportContextPDF, row); gernotbelger@9332: } gernotbelger@9332: gernotbelger@9332: @Override gernotbelger@9332: protected void addJRTableHeader(final ExportContextPDF exportContextPDF, final MetaAndTableJRDataSource source) { gernotbelger@9332: /* column headings */ gernotbelger@9332: mschaefer@9444: exportContextPDF.addJRMetadata(source, "station_header", BunduResultType.missStationRangeFrom); mschaefer@9444: exportContextPDF.addJRMetadata(source, "station_header", BunduResultType.missStationRangeTo); mschaefer@9432: exportContextPDF.addJRMetadata(source, "channel_miss_volume_header", BunduResultType.missVolumeTotal); mschaefer@9432: exportContextPDF.addJRMetadata(source, "channel_miss_mass_header", BunduResultType.missMassTotal); gernotbelger@9332: gernotbelger@9332: } gernotbelger@9332: }