gernotbelger@8854: /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@8854: * Software engineering by gernotbelger@8854: * Björnsen Beratende Ingenieure GmbH gernotbelger@8854: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@8854: * gernotbelger@8854: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@8854: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@8854: * documentation coming with Dive4Elements River for details. gernotbelger@8854: */ gernotbelger@8854: package org.dive4elements.river.artifacts.sinfo.flowdepth; gernotbelger@8854: gernotbelger@8854: import java.io.Serializable; gernotbelger@8854: import java.util.ArrayList; gernotbelger@8854: import java.util.Collection; gernotbelger@8854: import java.util.Collections; gernotbelger@8854: gernotbelger@8854: import gnu.trove.TDoubleArrayList; gernotbelger@8854: gernotbelger@8854: /** gernotbelger@8854: * Contains the results of a {@link FlowDepthCalculation}. gernotbelger@8854: * gernotbelger@8854: * @author Gernot Belger gernotbelger@8854: */ gernotbelger@8854: class FlowDepthCalculationResult gernotbelger@8854: implements Serializable { gernotbelger@8854: gernotbelger@8854: private static final long serialVersionUID = 1L; gernotbelger@8854: gernotbelger@8854: private final Collection rows = new ArrayList<>(); gernotbelger@8854: gernotbelger@8854: private final String wstLabel; gernotbelger@8854: gernotbelger@8854: private final String soundingLabel; gernotbelger@8854: gernotbelger@8854: public FlowDepthCalculationResult(final String wstLabel, final String soundingLabel) { gernotbelger@8854: this.wstLabel = wstLabel; gernotbelger@8854: this.soundingLabel = soundingLabel; gernotbelger@8854: } gernotbelger@8854: gernotbelger@8854: public void addRow(double station, double flowDepth, double flowDepthWithTkh, double tkh, double waterlevel, double discharge, String waterlevelLabel, String gauge, double meanBedHeight, String sondageLabel, String location) { gernotbelger@8854: rows.add(new FlowDepthRow(station, flowDepth, flowDepthWithTkh, tkh, waterlevel, discharge, waterlevelLabel, gauge, meanBedHeight, sondageLabel, location)); gernotbelger@8854: } gernotbelger@8854: gernotbelger@8854: public String getWstLabel() { gernotbelger@8854: return this.wstLabel; gernotbelger@8854: } gernotbelger@8854: gernotbelger@8854: public String getSoundingLabel() { gernotbelger@8854: return this.soundingLabel; gernotbelger@8854: } gernotbelger@8854: gernotbelger@8854: public Collection getRows() { gernotbelger@8854: return Collections.unmodifiableCollection( rows ); gernotbelger@8854: } gernotbelger@8854: gernotbelger@8854: public double[][] getFlowDepthPoints() { gernotbelger@8854: gernotbelger@8854: TDoubleArrayList xPoints = new TDoubleArrayList(rows.size()); gernotbelger@8854: TDoubleArrayList yPoints = new TDoubleArrayList(rows.size()); gernotbelger@8854: gernotbelger@8854: for (FlowDepthRow row : rows) { gernotbelger@8854: xPoints.add(row.getStation()); gernotbelger@8854: yPoints.add(row.getFlowDepth()); gernotbelger@8854: } gernotbelger@8854: gernotbelger@8854: return new double[][] { xPoints.toNativeArray(), yPoints.toNativeArray() }; gernotbelger@8854: } gernotbelger@8854: }