Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsColumn.java @ 3870:0c16eace7b6c
Add robustness checks to prevent NPEs
flys-artifacts/trunk@5502 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Tue, 18 Sep 2012 10:18:30 +0000 |
parents | 70469e3d34b9 |
children |
line wrap: on
line source
package de.intevation.flys.artifacts.model; import de.intevation.flys.artifacts.math.Linear; import java.util.Arrays; import java.io.Serializable; public class FixingsColumn implements Serializable { protected double [] kms; protected double [] ws; protected QRangeTree qs; public FixingsColumn() { } public FixingsColumn( double [] kms, double [] ws, QRangeTree qs ) { this.kms = kms; this.ws = ws; this.qs = qs; } public boolean getW(double km, double [] w) { return getW(km, w, 0); } public boolean getW(double km, double [] w, int index) { if (kms.length == 0 || km < kms[0] || km > kms[kms.length-1]) { w[index] = Double.NaN; return true; } int idx = Arrays.binarySearch(kms, km); if (idx >= 0) { w[index] = ws[idx]; return true; } idx = -idx - 1; w[index] = Linear.linear(km, kms[idx-1], kms[idx], ws[idx-1], ws[idx]); return false; } public double getQ(double km) { return qs.findQ(km); } public QRangeTree getQRanges() { return qs; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :