Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/CollisionCalcOverviewResult.java @ 9150:23945061daec
gigantic refactoring: exporter, result, results
to support multiple jaspers -> collisions
author | gernotbelger |
---|---|
date | Thu, 14 Jun 2018 16:56:31 +0200 |
parents | |
children | f9bb5d0a6ff3 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/CollisionCalcOverviewResult.java Thu Jun 14 16:56:31 2018 +0200 @@ -0,0 +1,108 @@ +/* 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.sinfo.collision; + +import java.util.ArrayList; +import java.util.Collection; + +import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; +import org.dive4elements.river.artifacts.common.ExportContextCSV; +import org.dive4elements.river.artifacts.common.GeneralResultType; +import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource; +import org.dive4elements.river.artifacts.common.ResultRow; +import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; + +/** + * Contains the results of a {@link FloodDurationCalculation}. + * + * @author Gernot Belger + */ +final class CollisionCalcOverviewResult extends AbstractCalculationExportableResult<CollisionCalculationResults> { + + private static final long serialVersionUID = 1L; + + private static final String JASPER_FILE = "/jasper/templates/sinfo.collision.overview.jrxml"; + + public CollisionCalcOverviewResult(final String label, final Collection<ResultRow> rows) { + super(label, rows); + } + + @Override + protected void writeCSVResultMetadata(final ExportContextCSV exportContextCSV, final CollisionCalculationResults results) { + // TODO Auto-generated method stub + // final WstInfo wst = result.getWst(); + // exportContext.writeCSVWaterlevelMetadata(writer, wst); + } + + @Override + public void writeCSVHeader(final ExportContextCSV exportContextCSV, final CollisionCalculationResults results, final RiverInfo river) { + + // FIXME wrong columns: + final Collection<String> header = new ArrayList<>(99); + + header.add(exportContextCSV.formatCsvHeader(GeneralResultType.station)); + // + // header.add(exportContext.formatCsvHeader(SInfoResultType.riverside)); + // header.add(exportContext.formatCsvHeader(SInfoResultType.inundationduration)); + // header.add(exportContext.formatCsvHeader(SInfoResultType.inundationdurationq)); + // header.add(exportContext.formatCsvHeader(SInfoResultType.infrastructureHeight)); + // header.add(exportContext.formatCsvHeader(SInfoResultType.infrastructuretype)); + // header.add(exportContext.formatCsvHeader(SInfoResultType.gaugeLabel)); + // header.add(exportContext.formatCsvHeader(SInfoResultType.location)); + + exportContextCSV.writeCSVLine(header.toArray(new String[header.size()])); + } + + @Override + protected String[] formatCSVRow(final ExportContextCSV exportContextCSV, final CollisionCalculationResults results, final ResultRow row) { + return formatRow(exportContextCSV, results, row); + } + + @Override + protected String[] formatPDFRow(final ExportContextCSV exportContextCSV, final CollisionCalculationResults results, final ResultRow row) { + return formatRow(exportContextCSV, results, row); + } + + private String[] formatRow(final ExportContextCSV exportContextCSV, final CollisionCalculationResults results, final ResultRow row) { + + final Collection<String> lines = new ArrayList<>(11); + + // FIXME wrong columns: + lines.add(exportContextCSV.formatRowValue(row, GeneralResultType.station)); + // lines.add(exportContext.formatRowValue(row, SInfoResultType.tkh)); + // lines.add(exportContext.formatRowValue(row, SInfoResultType.soilkind)); + // lines.add(exportContext.formatRowValue(row, SInfoResultType.meanBedHeight)); + // lines.add(exportContext.formatRowValue(row, SInfoResultType.waterlevel)); + // lines.add(exportContext.formatRowValue(row, SInfoResultType.discharge)); + // lines.add(exportContext.formatRowValue(row, SInfoResultType.gaugeLabel)); + // lines.add(exportContext.formatRowValue(row, SInfoResultType.location)); + + return lines.toArray(new String[lines.size()]); + } + + @Override + protected String getJasperFile() { + return JASPER_FILE; + } + + @Override + protected void addJRTableHeader(final ExportContextCSV exportContextCSV, final MetaAndTableJRDataSource source, final CollisionCalculationResults results) { + + /* column headings */ + // FIXME wrong columns: + exportContextCSV.addJRMetadata(source, "station_header", GeneralResultType.station); + // exportContext.addJRMetadata(source, "station_header", GeneralResultType.station); + // exportContext.addJRMetadata(source, "tkh_header", SInfoResultType.tkh); + // exportContext.addJRMetadata(source, "tkhkind_header", SInfoResultType.soilkind); + // exportContext.addJRMetadata(source, "bedheight_header", SInfoResultType.meanBedHeight); + // exportContext.addJRMetadata(source, "waterlevel_header", SInfoResultType.waterlevel); + // exportContext.addJRMetadata(source, "discharge_header", SInfoResultType.discharge); + } +} \ No newline at end of file