gernotbelger@9415: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9415: * Software engineering by gernotbelger@9415: * Björnsen Beratende Ingenieure GmbH gernotbelger@9415: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@9415: * gernotbelger@9415: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9415: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9415: * documentation coming with Dive4Elements River for details. gernotbelger@9415: */ gernotbelger@9415: package org.dive4elements.river.artifacts.model.fixings; gernotbelger@9415: gernotbelger@9415: import java.io.Serializable; gernotbelger@9415: import java.util.Collection; gernotbelger@9415: import java.util.HashMap; gernotbelger@9415: import java.util.Map; gernotbelger@9415: gernotbelger@9415: /** gernotbelger@9415: * Event data of analysis events sorted by period, event, station and qwd gernotbelger@9415: * gernotbelger@9415: * @author Gernot Belger gernotbelger@9415: * gernotbelger@9415: */ gernotbelger@9415: public class AnalysisPeriodEventResults implements Serializable { gernotbelger@9415: gernotbelger@9415: private static final long serialVersionUID = 1L; gernotbelger@9415: gernotbelger@9415: /* Period-Index -> results */ gernotbelger@9415: private final Map resultData = new HashMap<>(); gernotbelger@9415: gernotbelger@9415: public AnalysisPeriodEventResults() { gernotbelger@9415: } gernotbelger@9415: gernotbelger@9415: public Collection getEventResults() { gernotbelger@9415: return this.resultData.values(); gernotbelger@9415: } gernotbelger@9415: gernotbelger@9415: public FixResultColumns getEventResults(final int periodIndex) { gernotbelger@9415: return this.resultData.get(periodIndex); gernotbelger@9415: } gernotbelger@9415: gernotbelger@9415: public void addQWD(final int periodIndex, final double km, final FixingColumnWithData event, final QWD qwd) { gernotbelger@9415: gernotbelger@9415: final FixResultColumns columns = getOrCreatePeriodResult(periodIndex); gernotbelger@9415: columns.addQWD(event, km, qwd); gernotbelger@9415: } gernotbelger@9415: gernotbelger@9415: public void sortAll() { gernotbelger@9415: for (final FixResultColumns columns : this.resultData.values()) gernotbelger@9415: columns.sortAll(); gernotbelger@9415: } gernotbelger@9415: gernotbelger@9415: private FixResultColumns getOrCreatePeriodResult(final int periodIndex) { gernotbelger@9415: gernotbelger@9415: final FixResultColumns existingColumns = this.resultData.get(periodIndex); gernotbelger@9415: if (existingColumns != null) gernotbelger@9415: return existingColumns; gernotbelger@9415: gernotbelger@9415: final FixResultColumns newColumns = new FixResultColumns(); gernotbelger@9415: this.resultData.put(periodIndex, newColumns); gernotbelger@9415: return newColumns; gernotbelger@9415: } gernotbelger@9415: }