# HG changeset patch # User gernotbelger # Date 1529584331 -7200 # Node ID 9b2e46090099ef304bb8c45d4541ca5b84685eea # Parent 1f94b3673ed3b4752a1e6468838ffe0cb6438589 tkh cast exception fix gigantic refactoring 2 diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractCalculationExportableResult.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractCalculationExportableResult.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractCalculationExportableResult.java Thu Jun 21 14:32:11 2018 +0200 @@ -18,7 +18,7 @@ /** * @author Domenico Nardi Tironi */ -public abstract class AbstractCalculationExportableResult extends AbstractCalculationResult { +public abstract class AbstractCalculationExportableResult> extends AbstractCalculationResult { private static final long serialVersionUID = 1L; diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractCalculationListResults.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractCalculationListResults.java Thu Jun 21 10:41:55 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/** 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.ArrayList; -import java.util.Collections; -import java.util.List; - -import org.apache.commons.lang.math.DoubleRange; -import org.dive4elements.river.artifacts.model.Calculation; -import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; - -/** - * @author Gernot Belger - */ -public abstract class AbstractCalculationListResults extends AbstractCalculationResults { - - private static final long serialVersionUID = 1L; - - private final List results = new ArrayList<>(); - - public AbstractCalculationListResults(final String calcModeLabel, final String user, final RiverInfo river, final DoubleRange calcRange) { - super(calcModeLabel, user, river, calcRange); - } - - public final void addResult(final RESULT result, final Calculation problems) { - /* we assume error reporting was already done in this case */ - if (result == null) - return; - - if (result.isEmpty()) { - problems.addProblem("abstractsinfocalculationresults.emptyResult", result.getLabel()); - return; - } - - this.results.add(result); - } - - public final List getResults() { - return Collections.unmodifiableList(this.results); - } - -} \ No newline at end of file diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractCalculationResults.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractCalculationResults.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractCalculationResults.java Thu Jun 21 14:32:11 2018 +0200 @@ -10,17 +10,23 @@ package org.dive4elements.river.artifacts.common; import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import org.apache.commons.lang.math.DoubleRange; +import org.dive4elements.river.artifacts.model.Calculation; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; /** * @author Gernot Belger */ -public abstract class AbstractCalculationResults implements Serializable { +public abstract class AbstractCalculationResults implements Serializable { private static final long serialVersionUID = 1L; + private final List results = new ArrayList<>(); + private final String calcModeLabel; private final String user; @@ -51,4 +57,23 @@ public final DoubleRange getCalcRange() { return this.calcRange; } + + //// COPY FROM AbtractCalculationListResults -> further refactoring necessary? + public final void addResult(final RESULT result, final Calculation problems) { + /* we assume error reporting was already done in this case */ + if (result == null) + return; + + if (result.isEmpty()) { + problems.addProblem("abstractsinfocalculationresults.emptyResult", result.getLabel()); + return; + } + + this.results.add(result); + } + + public final List getResults() { + return Collections.unmodifiableList(this.results); + } + } \ No newline at end of file diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractCommonListExporter.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractCommonListExporter.java Thu Jun 21 10:41:55 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,117 +0,0 @@ -/** 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 au.com.bytecode.opencsv.CSVWriter; - -/** - * @author Gernot Belger - */ -public abstract class AbstractCommonListExporter> extends AbstractCommonExporter { - - /** The storage that contains the current calculation result. */ - protected static enum ExportMode { - pdf, csv - } - - @Override - protected void doWriteCSVData(final CSVWriter writer, final RESULTS results) { - - getLog().info("writeCSVData"); - - /* write as csv */ - writeCSVGlobalMetadata(writer, results); - - writer.writeNext(new String[] { "" }); // break line HERE to avoid redundance - final RiverInfo river = results.getRiver(); - // FIXME :with comment if not first result - writeCSVHeader(writer, results, river); - writer.writeNext(new String[] { "" }); // break line HERE to avoid redundance - - for (final RESULT result : results.getResults()) { - writeCSVResult(writer, results, result); - writer.writeNext(new String[] { "" }); // break line HERE after each resultset - } - } - - protected abstract void writeCSVHeader(final CSVWriter writer, final RESULTS results, final RiverInfo river); - - /** - * Add metadata that is once written to the top of the file. - */ - protected abstract void writeCSVGlobalMetadata(final CSVWriter writer, final RESULTS results); - - private final void writeCSVResult(final CSVWriter writer, final RESULTS results, final RESULT result) { - - writeCSVResultMetadata(writer, results, result); - // 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 rows = result.getRows(); - for (final ResultRow row : rows) - writeCSVRow(writer, results, result, row); - } - - /** - * Add metadata that is written once per result set. - */ - protected abstract void writeCSVResultMetadata(CSVWriter writer, RESULTS results, RESULT result); - - protected void writeCSVRow(final CSVWriter writer, final RESULTS results, final RESULT result, final ResultRow row) { - getLog().debug("writeCSVFlowDepthRow"); - - final String[] formattedRow = formatCSVRow(results, row); - writer.writeNext(formattedRow); - } - - protected final String[] formatCSVRow(final RESULTS results, final ResultRow row) { - return formatRow(results, row, ExportMode.csv); - } - - protected final MetaAndTableJRDataSource createJRData() { - - /* fetch calculation results */ - final RESULTS results = getResults(); - - final MetaAndTableJRDataSource source = new MetaAndTableJRDataSource(); - - addJRMetaData(source, results); - - for (final RESULT result : results.getResults()) - addJRTableData(source, results, result); - - return source; - } - - protected abstract void addJRMetaData(final MetaAndTableJRDataSource source, final RESULTS results); - - private void addJRTableData(final MetaAndTableJRDataSource source, final RESULTS results, final RESULT result) { - - final Collection rows = result.getRows(); - - for (final ResultRow row : rows) { - - final String[] formattedRow = formatPDFRow(results, row); - source.addData(formattedRow); - } - } - - protected abstract String[] formatRow(RESULTS results, ResultRow row, ExportMode mode); - - private final String[] formatPDFRow(final RESULTS results, final ResultRow row) { - return formatRow(results, row, ExportMode.pdf); - } -} \ No newline at end of file diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/CollisionCalculationResults.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/CollisionCalculationResults.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/CollisionCalculationResults.java Thu Jun 21 14:32:11 2018 +0200 @@ -11,13 +11,13 @@ import org.apache.commons.lang.math.DoubleRange; import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; -import org.dive4elements.river.artifacts.common.AbstractCalculationListResults; +import org.dive4elements.river.artifacts.common.AbstractCalculationResults; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; /** * @author Gernot Belger */ -final class CollisionCalculationResults extends AbstractCalculationListResults> { +final class CollisionCalculationResults extends AbstractCalculationResults> { private static final long serialVersionUID = 1L; diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/CollisionQueryCalculationResult.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/CollisionQueryCalculationResult.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/CollisionQueryCalculationResult.java Thu Jun 21 14:32:11 2018 +0200 @@ -11,19 +11,19 @@ import java.util.Collection; +import org.dive4elements.river.artifacts.common.AbstractCalculationResult; import org.dive4elements.river.artifacts.common.ResultRow; -import org.dive4elements.river.artifacts.sinfo.common.AbstractSInfoCalculationResult; /** * Contains the results of a database query of a river bed collision series * * @author Matthias Schäfer */ -public final class CollisionQueryCalculationResult extends AbstractSInfoCalculationResult { +public final class CollisionQueryCalculationResult extends AbstractCalculationResult { private static final long serialVersionUID = 1L; public CollisionQueryCalculationResult(final String label, final Collection rows) { - super(label, null, rows); + super(label, rows); } } \ No newline at end of file diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoCalculationResult.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoCalculationResult.java Thu Jun 21 10:41:55 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/** 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.common; - -import java.util.Collection; -import org.dive4elements.river.artifacts.common.AbstractCalculationResult; -import org.dive4elements.river.artifacts.common.ResultRow; -import org.dive4elements.river.artifacts.sinfo.util.WstInfo; - - -/** - * @author Gernot Belger - */ -public abstract class AbstractSInfoCalculationResult extends AbstractCalculationResult { - - private static final long serialVersionUID = 1L; - - private final WstInfo wst; - - public AbstractSInfoCalculationResult(final String label, final WstInfo wst, final Collection< ResultRow> rows) { - super(label, rows); - this.wst = wst; - } - - - public final WstInfo getWst() { - return this.wst; - } -} \ No newline at end of file diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoCalculationResults.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoCalculationResults.java Thu Jun 21 10:41:55 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/** 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.common; - - - -import org.apache.commons.lang.math.DoubleRange; -import org.dive4elements.river.artifacts.common.AbstractCalculationListResults; - -import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; - -/** - * @author Gernot Belger - */ -public abstract class AbstractSInfoCalculationResults extends AbstractCalculationListResults { - - private static final long serialVersionUID = 1L; - - //TODO: einen sinnvollen Grund finden, warum es diese Klasse noch geben muss, oder LÖSCHEN! - public AbstractSInfoCalculationResults(final String calcModeLabel, final String user, final RiverInfo river, final DoubleRange calcRange) { - super(calcModeLabel, user, river, calcRange); //TODO: Split! - } - -} \ No newline at end of file diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractTkhCalculationResult.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractTkhCalculationResult.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractTkhCalculationResult.java Thu Jun 21 14:32:11 2018 +0200 @@ -12,6 +12,8 @@ import java.util.Collection; import java.util.List; +import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; +import org.dive4elements.river.artifacts.common.AbstractCalculationResults; import org.dive4elements.river.artifacts.common.ResultRow; import org.dive4elements.river.artifacts.sinfo.tkhcalculation.SoilKind; import org.dive4elements.river.artifacts.sinfo.util.WstInfo; @@ -21,15 +23,17 @@ /** * @author Gernot Belger */ -public abstract class AbstractTkhCalculationResult extends AbstractSInfoCalculationResult { + +public abstract class AbstractTkhCalculationResult> extends AbstractCalculationExportableResult { private static final long serialVersionUID = 1L; private final boolean hasTkh; + private final WstInfo wst; public AbstractTkhCalculationResult(final String label, final WstInfo wst, final boolean hasTkh, final Collection rows) { - super(label, wst, rows); - + super(label, rows); + this.wst = wst; this.hasTkh = hasTkh; } @@ -100,4 +104,8 @@ return new double[][] { adjustedX.toNativeArray(), adjustedY.toNativeArray() }; } + + public final WstInfo getWst() { + return this.wst; // TODO: Meta-Data export hier hin + } } \ No newline at end of file diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/SInfoResultFacet.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/SInfoResultFacet.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/SInfoResultFacet.java Thu Jun 21 14:32:11 2018 +0200 @@ -13,8 +13,8 @@ import org.dive4elements.artifacts.Artifact; import org.dive4elements.artifacts.CallContext; import org.dive4elements.river.artifacts.D4EArtifact; -import org.dive4elements.river.artifacts.common.AbstractCalculationListResults; import org.dive4elements.river.artifacts.common.AbstractCalculationResult; +import org.dive4elements.river.artifacts.common.AbstractCalculationResults; import org.dive4elements.river.artifacts.model.CalculationResult; import org.dive4elements.river.artifacts.model.DataFacet; import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; @@ -32,8 +32,8 @@ // required for clone operation deepCopy() } - public SInfoResultFacet(final int idx, final String name, final String description, final String yAxisLabelKey, final ComputeType type, final String stateId, - final String hash) { + public SInfoResultFacet(final int idx, final String name, final String description, final String yAxisLabelKey, final ComputeType type, + final String stateId, final String hash) { super(idx, name, description, type, hash, stateId); this.metaData.put("X", "sinfo.chart.km.xaxis.label"); this.metaData.put("Y", yAxisLabelKey); @@ -47,7 +47,7 @@ final CalculationResult res = (CalculationResult) flys.compute(context, this.hash, this.stateId, this.type, false); - final AbstractCalculationListResults data = (AbstractCalculationListResults) res.getData(); + final AbstractCalculationResults data = (AbstractCalculationResults) res.getData(); return data.getResults().get(this.index); } diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculationResult.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculationResult.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculationResult.java Thu Jun 21 14:32:11 2018 +0200 @@ -14,12 +14,11 @@ import java.util.Collection; import java.util.List; -import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; -import org.dive4elements.river.artifacts.common.AbstractCalculationResults; 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.common.AbstractTkhCalculationResult; import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; import org.dive4elements.river.artifacts.sinfo.util.WstInfo; @@ -29,25 +28,26 @@ * * @author Gernot Belger */ -final class FloodDurationCalculationResult extends AbstractCalculationExportableResult { +final class FloodDurationCalculationResult extends AbstractTkhCalculationResult { private static final long serialVersionUID = 1L; private final int waterlevelCount; // TODO: ggf 2 verschiedene Result-Klassen? - private final WstInfo wstInfo; + // private final WstInfo wstInfo; private final int maxWaterlevelPdf = 3; private enum ExportMode { pdf, csv } - public FloodDurationCalculationResult(final String label, final WstInfo wstInfo, final Collection rows, final int waterlevelCount) { - super(label, rows); + public FloodDurationCalculationResult(final String label, final WstInfo wstInfo, final Collection rows, final boolean hasTkh, + final int waterlevelCount) { + super(label, wstInfo, hasTkh, rows); this.waterlevelCount = waterlevelCount; - this.wstInfo = wstInfo; + // this.wstInfo = wstInfo; } @Override - public void writeCSVHeader(final ExportContextCSV exportContextCSV, final AbstractCalculationResults results, final RiverInfo river) { + public void writeCSVHeader(final ExportContextCSV exportContextCSV, final FloodDurationCalculationResults results, final RiverInfo river) { final Collection header = new ArrayList<>(99); @@ -79,23 +79,22 @@ } @Override - protected void writeCSVResultMetadata(final ExportContextCSV exportContextCSV, final AbstractCalculationResults results) { + protected void writeCSVResultMetadata(final ExportContextCSV exportContextCSV, final FloodDurationCalculationResults results) { - exportContextCSV.writeCSVWaterlevelMetadata(this.wstInfo); // TODO: Abweichend vom Allgemeinen werden hier andere Felder benötigt bei den - // Wasserspiegellagen + exportContextCSV.writeCSVWaterlevelMetadata(super.getWst()); // -> export in super? -> TODO exportContextCSV.writeBlankLine(); // writer.writeNext(new String[] { "" }); // break line } @Override - protected String[] formatCSVRow(final ExportContextCSV exportContextCSV, final AbstractCalculationResults results, final ResultRow row) { + protected String[] formatCSVRow(final ExportContextCSV exportContextCSV, final FloodDurationCalculationResults results, final ResultRow row) { // TODO Auto-generated method stub return formatRow(exportContextCSV, results, row, ExportMode.csv); } @Override - protected String[] formatPDFRow(final ExportContextCSV exportContextCSV, final AbstractCalculationResults results, final ResultRow row) { + protected String[] formatPDFRow(final ExportContextCSV exportContextCSV, final FloodDurationCalculationResults results, final ResultRow row) { return formatRow(exportContextCSV, results, row, ExportMode.pdf); } @@ -109,7 +108,8 @@ } @Override - protected void addJRTableHeader(final ExportContextCSV exportContextCSV, final MetaAndTableJRDataSource source, final AbstractCalculationResults results) { + protected void addJRTableHeader(final ExportContextCSV exportContextCSV, final MetaAndTableJRDataSource source, + final FloodDurationCalculationResults results) { /* column headings */ exportContextCSV.addJRMetadata(source, "station_header", GeneralResultType.station); exportContextCSV.addJRMetadata(source, "riverside_header", SInfoResultType.riverside); @@ -149,7 +149,8 @@ return this.waterlevelCount; } - private String[] formatRow(final ExportContextCSV exportContextCSV, final AbstractCalculationResults results, final ResultRow row, final ExportMode mode) { + private String[] formatRow(final ExportContextCSV exportContextCSV, final FloodDurationCalculationResults results, final ResultRow row, + final ExportMode mode) { final Collection lines = new ArrayList<>(99); diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculationResults.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculationResults.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculationResults.java Thu Jun 21 14:32:11 2018 +0200 @@ -11,13 +11,13 @@ import org.apache.commons.lang.math.DoubleRange; import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; -import org.dive4elements.river.artifacts.common.AbstractCalculationListResults; +import org.dive4elements.river.artifacts.common.AbstractCalculationResults; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; /** * @author Gernot Belger */ -final class FloodDurationCalculationResults extends AbstractCalculationListResults> { +final class FloodDurationCalculationResults extends AbstractCalculationResults> { private static final long serialVersionUID = 1L; diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculator.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculator.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculator.java Thu Jun 21 14:32:11 2018 +0200 @@ -45,8 +45,9 @@ calculateResultRow(8888.888); calculateResultRow(99); calculateResultRow(77); + final boolean hasTkh = false; // TODO tkh richtig machen, oder anderen result-Type wählen als super-klasse für FloodDurationCalculationResult - final FloodDurationCalculationResult result = new FloodDurationCalculationResult(label, wstInfo, this.rows, 4); + final FloodDurationCalculationResult result = new FloodDurationCalculationResult(label, wstInfo, this.rows, false, 4); final RiverInfo riverInfo = new RiverInfo(this.riverInfoProvider.getRiver()); diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/InfrastructureQueryCalculationResult.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/InfrastructureQueryCalculationResult.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/InfrastructureQueryCalculationResult.java Thu Jun 21 14:32:11 2018 +0200 @@ -11,19 +11,19 @@ import java.util.Collection; +import org.dive4elements.river.artifacts.common.AbstractCalculationResult; import org.dive4elements.river.artifacts.common.ResultRow; -import org.dive4elements.river.artifacts.sinfo.common.AbstractSInfoCalculationResult; /** * Contains the results of a database query of a river infrastructure series * * @author Matthias Schäfer */ -public final class InfrastructureQueryCalculationResult extends AbstractSInfoCalculationResult { +public final class InfrastructureQueryCalculationResult extends AbstractCalculationResult { private static final long serialVersionUID = 1L; public InfrastructureQueryCalculationResult(final String label, final Collection rows) { - super(label, null, rows); + super(label, rows); } } \ No newline at end of file diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculation.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculation.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculation.java Thu Jun 21 14:32:11 2018 +0200 @@ -111,8 +111,8 @@ final DischargeValuesFinder dischargeProvider = DischargeValuesFinder.fromKms(wstKms); final River river = riverInfoProvider.getRiver(); - final TkhCalculator tkhCalculator = TkhCalculator.buildTkhCalculator(useTkh, problems, label, river, calcRange, waterlevelProvider, - dischargeProvider, bedHeight); + final TkhCalculator tkhCalculator = TkhCalculator.buildTkhCalculator(useTkh, problems, label, river, calcRange, waterlevelProvider, dischargeProvider, + bedHeight); final FlowDepthCalculator calculator = new FlowDepthCalculator(riverInfoProvider, wspLabel, bedHeight, tkhCalculator); return calculator.execute(label, wstInfo, calcRange); diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculationResult.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculationResult.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculationResult.java Thu Jun 21 14:32:11 2018 +0200 @@ -12,11 +12,11 @@ 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.common.AbstractTkhCalculationResult; import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; import org.dive4elements.river.artifacts.sinfo.util.BedHeightInfo; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; @@ -27,7 +27,8 @@ * * @author Gernot Belger */ -final class FlowDepthCalculationResult extends AbstractCalculationExportableResult { + +final class FlowDepthCalculationResult extends AbstractTkhCalculationResult { private static final long serialVersionUID = 1L; @@ -38,16 +39,13 @@ private static final String JASPER_FILE = "/jasper/templates/sinfo.flowdepth.jrxml"; // TODO use jrxml-path all over the project private final BedHeightInfo sounding; - private final WstInfo wst; - private final boolean hasTkh; public FlowDepthCalculationResult(final String label, final WstInfo wst, final BedHeightInfo sounding, final boolean hasTkh, final Collection rows) { - super(label, rows); + super(label, wst, hasTkh, rows); this.sounding = sounding; - this.wst = wst; - this.hasTkh = hasTkh; + } public BedHeightInfo getSounding() { @@ -87,7 +85,7 @@ exportContextCSV.writeBlankLine();// .writeNext(new String[] { "" }); // break line - exportContextCSV.writeCSVWaterlevelMetadata(this.wst); + exportContextCSV.writeCSVWaterlevelMetadata(super.getWst()); // TODO move to super exportContextCSV.writeBlankLine();// .writeNext(new String[] { "" }); // break line @@ -126,10 +124,6 @@ exportContextPDF.addJRMetadata(source, "location_header", SInfoResultType.location); } - public boolean hasTkh() { - return this.hasTkh; - } - private String[] formatRow(final ExportMode mode, final ExportContextCSV exportContextCSV, final FlowDepthCalculationResults results, final ResultRow row) { final Collection lines = new ArrayList<>(11); diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculationResults.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculationResults.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculationResults.java Thu Jun 21 14:32:11 2018 +0200 @@ -11,13 +11,14 @@ import org.apache.commons.lang.math.DoubleRange; import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; -import org.dive4elements.river.artifacts.common.AbstractCalculationListResults; +import org.dive4elements.river.artifacts.common.AbstractCalculationResults; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; /** * @author Gernot Belger */ -final class FlowDepthCalculationResults extends AbstractCalculationListResults> { + +final class FlowDepthCalculationResults extends AbstractCalculationResults> { private static final long serialVersionUID = 1L; diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthdev/FlowDepthDevelopmentCalculationResults.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthdev/FlowDepthDevelopmentCalculationResults.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthdev/FlowDepthDevelopmentCalculationResults.java Thu Jun 21 14:32:11 2018 +0200 @@ -13,13 +13,13 @@ import org.apache.commons.lang.math.DoubleRange; import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; -import org.dive4elements.river.artifacts.common.AbstractCalculationListResults; +import org.dive4elements.river.artifacts.common.AbstractCalculationResults; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; /** * @author Gernot Belger */ -final class FlowDepthDevelopmentCalculationResults extends AbstractCalculationListResults> { +final class FlowDepthDevelopmentCalculationResults extends AbstractCalculationResults> { private static final long serialVersionUID = 1L; diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthminmax/FlowDepthMinMaxCalculationResults.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthminmax/FlowDepthMinMaxCalculationResults.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthminmax/FlowDepthMinMaxCalculationResults.java Thu Jun 21 14:32:11 2018 +0200 @@ -11,13 +11,13 @@ import org.apache.commons.lang.math.DoubleRange; import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; -import org.dive4elements.river.artifacts.common.AbstractCalculationListResults; +import org.dive4elements.river.artifacts.common.AbstractCalculationResults; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; /** * @author Gernot Belger */ -final class FlowDepthMinMaxCalculationResults extends AbstractCalculationListResults> { +final class FlowDepthMinMaxCalculationResults extends AbstractCalculationResults> { private static final long serialVersionUID = 1L; diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/predefinedchannel/PredefinedChannelQueryCalculationResult.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/predefinedchannel/PredefinedChannelQueryCalculationResult.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/predefinedchannel/PredefinedChannelQueryCalculationResult.java Thu Jun 21 14:32:11 2018 +0200 @@ -11,19 +11,19 @@ import java.util.Collection; +import org.dive4elements.river.artifacts.common.AbstractCalculationResult; import org.dive4elements.river.artifacts.common.ResultRow; -import org.dive4elements.river.artifacts.sinfo.common.AbstractSInfoCalculationResult; /** * Contains the results of a database query of a river channel width series * * @author Matthias Schäfer */ -public final class PredefinedChannelQueryCalculationResult extends AbstractSInfoCalculationResult { +public final class PredefinedChannelQueryCalculationResult extends AbstractCalculationResult { private static final long serialVersionUID = 1L; public PredefinedChannelQueryCalculationResult(final String label, final Collection rows) { - super(label, null, rows); + super(label, rows); } } \ No newline at end of file diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/predefineddepthevol/PredefinedDepthEvolQueryCalculationResult.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/predefineddepthevol/PredefinedDepthEvolQueryCalculationResult.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/predefineddepthevol/PredefinedDepthEvolQueryCalculationResult.java Thu Jun 21 14:32:11 2018 +0200 @@ -11,19 +11,19 @@ import java.util.Collection; +import org.dive4elements.river.artifacts.common.AbstractCalculationResult; import org.dive4elements.river.artifacts.common.ResultRow; -import org.dive4elements.river.artifacts.sinfo.common.AbstractSInfoCalculationResult; /** * Contains the results of a database query of a depth evolution series * * @author Matthias Schäfer */ -public final class PredefinedDepthEvolQueryCalculationResult extends AbstractSInfoCalculationResult { +public final class PredefinedDepthEvolQueryCalculationResult extends AbstractCalculationResult { private static final long serialVersionUID = 1L; public PredefinedDepthEvolQueryCalculationResult(final String label, final Collection rows) { - super(label, null, rows); + super(label, rows); } } \ No newline at end of file diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/predefinedflowdepth/PredefinedFlowDepthQueryCalculationResult.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/predefinedflowdepth/PredefinedFlowDepthQueryCalculationResult.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/predefinedflowdepth/PredefinedFlowDepthQueryCalculationResult.java Thu Jun 21 14:32:11 2018 +0200 @@ -11,19 +11,19 @@ import java.util.Collection; +import org.dive4elements.river.artifacts.common.AbstractCalculationResult; import org.dive4elements.river.artifacts.common.ResultRow; -import org.dive4elements.river.artifacts.sinfo.common.AbstractSInfoCalculationResult; /** * Contains the results of a database query of a tkh series * * @author Matthias Schäfer */ -public final class PredefinedFlowDepthQueryCalculationResult extends AbstractSInfoCalculationResult { +public final class PredefinedFlowDepthQueryCalculationResult extends AbstractCalculationResult { private static final long serialVersionUID = 1L; public PredefinedFlowDepthQueryCalculationResult(final String label, final Collection rows) { - super(label, null, rows); + super(label, rows); } } \ No newline at end of file diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/predefinedtkh/PredefinedTkhQueryCalculationResult.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/predefinedtkh/PredefinedTkhQueryCalculationResult.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/predefinedtkh/PredefinedTkhQueryCalculationResult.java Thu Jun 21 14:32:11 2018 +0200 @@ -11,19 +11,20 @@ import java.util.Collection; +import org.dive4elements.river.artifacts.common.AbstractCalculationResult; import org.dive4elements.river.artifacts.common.ResultRow; -import org.dive4elements.river.artifacts.sinfo.common.AbstractTkhCalculationResult; /** * Contains the results of a database query of a tkh series * * @author Matthias Schäfer */ -final class PredefinedTkhQueryCalculationResult extends AbstractTkhCalculationResult { +class PredefinedTkhQueryCalculationResult extends AbstractCalculationResult { private static final long serialVersionUID = 1L; public PredefinedTkhQueryCalculationResult(final String label, final Collection rows) { - super(label, null, true, rows); + super(label, rows); } + } \ No newline at end of file diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/TkhCalculationResult.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/TkhCalculationResult.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/TkhCalculationResult.java Thu Jun 21 14:32:11 2018 +0200 @@ -12,11 +12,11 @@ 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.common.AbstractTkhCalculationResult; import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; import org.dive4elements.river.artifacts.sinfo.util.WstInfo; @@ -26,21 +26,18 @@ * * @author Gernot Belger */ -final class TkhCalculationResult extends AbstractCalculationExportableResult { +final class TkhCalculationResult extends AbstractTkhCalculationResult { private static final long serialVersionUID = 1L; private static final String JASPER_FILE = "/jasper/templates/sinfo.tkh.jrxml"; - private final boolean hasTkh; - private final WstInfo wst; private enum ExportMode { pdf, csv } public TkhCalculationResult(final String label, final WstInfo wst, final boolean hasTkh, final Collection rows) { - super(label, rows); - this.hasTkh = hasTkh; - this.wst = wst; + super(label, wst, hasTkh, rows); + } @Override @@ -68,7 +65,7 @@ @Override protected void writeCSVResultMetadata(final ExportContextCSV exportContextCSV, final TkhCalculationResults results) { - exportContextCSV.writeCSVWaterlevelMetadata(this.wst); + exportContextCSV.writeCSVWaterlevelMetadata(super.getWst());// TODO: move to super exportContextCSV.writeBlankLine(); } diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/TkhCalculationResults.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/TkhCalculationResults.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/TkhCalculationResults.java Thu Jun 21 14:32:11 2018 +0200 @@ -11,13 +11,13 @@ import org.apache.commons.lang.math.DoubleRange; import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; -import org.dive4elements.river.artifacts.common.AbstractCalculationListResults; +import org.dive4elements.river.artifacts.common.AbstractCalculationResults; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; /** * @author Gernot Belger */ -final class TkhCalculationResults extends AbstractCalculationListResults> { +final class TkhCalculationResults extends AbstractCalculationResults> { private static final long serialVersionUID = 1L; diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculationResults.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculationResults.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculationResults.java Thu Jun 21 14:32:11 2018 +0200 @@ -11,14 +11,14 @@ import org.apache.commons.lang.math.DoubleRange; import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; -import org.dive4elements.river.artifacts.common.AbstractCalculationListResults; +import org.dive4elements.river.artifacts.common.AbstractCalculationResults; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; /** * @author Domenico Nardi Tironi * */ -final class InundationDurationCalculationResults extends AbstractCalculationListResults> { +final class InundationDurationCalculationResults extends AbstractCalculationResults> { private static final long serialVersionUID = 1L; diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculationResults.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculationResults.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculationResults.java Thu Jun 21 14:32:11 2018 +0200 @@ -11,14 +11,14 @@ import org.apache.commons.lang.math.DoubleRange; import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; -import org.dive4elements.river.artifacts.common.AbstractCalculationListResults; +import org.dive4elements.river.artifacts.common.AbstractCalculationResults; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; /** * @author Domenico Nardi Tironi * */ -final class SalixLineCalculationResults extends AbstractCalculationListResults> { +final class SalixLineCalculationResults extends AbstractCalculationResults> { private static final long serialVersionUID = 1L; diff -r 1f94b3673ed3 -r 9b2e46090099 artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesCalculationResults.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesCalculationResults.java Thu Jun 21 10:41:55 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesCalculationResults.java Thu Jun 21 14:32:11 2018 +0200 @@ -11,14 +11,14 @@ import org.apache.commons.lang.math.DoubleRange; import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; -import org.dive4elements.river.artifacts.common.AbstractCalculationListResults; +import org.dive4elements.river.artifacts.common.AbstractCalculationResults; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; /** * @author Domenico Nardi Tironi * */ -final class VegetationZonesCalculationResults extends AbstractCalculationListResults> { +final class VegetationZonesCalculationResults extends AbstractCalculationResults> { private static final long serialVersionUID = 1L;