Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/Fixing.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.Comparator; import java.util.List; import org.dive4elements.river.artifacts.model.GaugeFinder; import org.dive4elements.river.artifacts.model.Range; import org.dive4elements.river.artifacts.model.fixings.FixingsOverview.FixColumn; public class Fixing implements Serializable { private static final long serialVersionUID = 1L; public static final Comparator<FixingColumn> DATE_CMP = new Comparator<FixingColumn>() { @Override public int compare(final FixingColumn a, final FixingColumn b) { return a.getStartTime().compareTo(b.getStartTime()); } }; private int wstId; private String description; private List<FixingColumn> columns; public Fixing() { } public int getId() { return this.wstId; } public String getDescription() { return this.description; } public Fixing(final int wstId, final String description) { this.wstId = wstId; this.description = description; this.columns = new ArrayList<>(); } public void allColumnIds(final List<Integer> cIds) { for (final FixingColumn column : this.columns) cIds.add(column.getId()); } public void loadColumns(final FixColumnLoader loader) { final List<FixColumn> fcs = loader.get(this.wstId); if (fcs == null) { FixingsOverview.log.warn("No columns for wst " + this.wstId); return; } for (final FixColumn fc : fcs) { this.columns.add(new FixingColumn(this, fc.columnId, fc.startTime, fc.name)); } } public void loadColumnsKmRange(final KMRangeLoader loader) { for (final FixingColumn column : this.columns) { column.loadKmRange(loader); } } public void adjustExtent(final Range extent) { for (final FixingColumn column : this.columns) { extent.extend(column); } } public void loadColumnsQRanges(final ColumnQRangeLoader loader, final GaugeFinder gaugeFinder) { for (final FixingColumn column : this.columns) { column.loadQRanges(loader, gaugeFinder); } } /** * @param allColumns[out] * Columns will be put here. * @param range * can be null. * @param filter * filter to apply. */ public void addAllColumns(final List<FixingColumn> allColumns, final Range range, final FixingColumnFilter filter) { for (final FixingColumn column : this.columns) { if ((range == null || column.hasSectorsInRange(range)) && (filter == null || filter.accept(column))) { allColumns.add(column); } } } }