Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoCalculationResults.java @ 8980:b194fa64506a
SINFO - show results themes according to spec, either raw data or floating mean values.
Some improvements to error handling and handling of empty results.
author | gernotbelger |
---|---|
date | Thu, 05 Apr 2018 18:30:34 +0200 |
parents | a4f1ac81f26d |
children | 50cc99579a46 |
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.sinfo.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 AbstractSInfoCalculationResults<RESULT extends AbstractSInfoCalculationResult> implements Serializable { private static final long serialVersionUID = 1L; private final List<RESULT> results = new ArrayList<>(); private final String calcModeLabel; private final String user; private final RiverInfo river; private final DoubleRange calcRange; public AbstractSInfoCalculationResults(final String calcModeLabel, final String user, final RiverInfo river, final DoubleRange calcRange) { this.calcModeLabel = calcModeLabel; this.user = user; this.river = river; this.calcRange = calcRange; } public final String getCalcModeLabel() { return this.calcModeLabel; } public final String getUser() { return this.user; } public final RiverInfo getRiver() { return this.river; } public final DoubleRange getCalcRange() { return this.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<RESULT> getResults() { return Collections.unmodifiableList(this.results); } }