Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixResultColumns.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.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author Gernot Belger */ public class FixResultColumns implements Serializable { private static final long serialVersionUID = 1L; private final Map<Integer, FixResultColumn> resultColumns = new HashMap<>(); public FixResultColumns() { } public Collection<FixResultColumn> getSortedColumns() { final Collection<FixResultColumn> values = this.resultColumns.values(); final List<FixResultColumn> sorted = new ArrayList<>(values); Collections.sort(sorted, new FixResultColumn.DateComparator()); return sorted; } public FixResultColumn getColumn(final int columnId) { return this.resultColumns.get(columnId); } public void addQWD(final FixingColumnWithData event, final double km, final QWD qwd) { final FixResultColumn columnResult = getOrCreateColumResult(event); columnResult.addQWD(km, qwd); } public void sortAll() { for (final FixResultColumn column : this.resultColumns.values()) column.getQWDs().sort(); } private FixResultColumn getOrCreateColumResult(final FixingColumnWithData event) { final FixResultColumn existingColumn = this.resultColumns.get(event.getId()); if (existingColumn != null) return existingColumn; final FixResultColumn newColumn = new FixResultColumn(event.getId(), event.getDate(), event.getStationRange()); this.resultColumns.put(event.getId(), newColumn); return newColumn; } }