view artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/AnalysisPeriodEventResults.java @ 9646:0380717105ba

Implemented alternative fitting strategy for Log-Linear function.
author Gernot Belger <g.belger@bjoernsen.de>
date Mon, 02 Dec 2019 17:56:15 +0100
parents 9744ce3c3853
children
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.model.fixings;

import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

/**
 * Event data of analysis events sorted by period, event, station and qwd
 *
 * @author Gernot Belger
 *
 */
public class AnalysisPeriodEventResults implements Serializable {

    private static final long serialVersionUID = 1L;

    /* Period-Index -> results */
    private final Map<Integer, FixResultColumns> resultData = new HashMap<>();

    public AnalysisPeriodEventResults() {
    }

    public Collection<FixResultColumns> getEventResults() {
        return this.resultData.values();
    }

    public FixResultColumns getEventResults(final int periodIndex) {
        return this.resultData.get(periodIndex);
    }

    public void addQWD(final int periodIndex, final double km, final FixingColumnWithData event, final QWD qwd) {

        final FixResultColumns columns = getOrCreatePeriodResult(periodIndex);
        columns.addQWD(event, km, qwd);
    }

    public void sortAll() {
        for (final FixResultColumns columns : this.resultData.values())
            columns.sortAll();
    }

    private FixResultColumns getOrCreatePeriodResult(final int periodIndex) {

        final FixResultColumns existingColumns = this.resultData.get(periodIndex);
        if (existingColumns != null)
            return existingColumns;

        final FixResultColumns newColumns = new FixResultColumns();
        this.resultData.put(periodIndex, newColumns);
        return newColumns;
    }
}

http://dive4elements.wald.intevation.org