Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/HistoricalWQTimerange.java @ 4708:45d05402b2a6
Importer: Emit log message when a dry run was run.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 19 Dec 2012 11:40:19 +0100 |
parents | 79878efbdf07 |
children | 05eeedc5b156 |
line wrap: on
line source
package de.intevation.flys.artifacts.model; import gnu.trove.TDoubleArrayList; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * A subclass of WQTimerange that stores besides W, Q and Timerange values * another double value. * * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class HistoricalWQTimerange extends WQTimerange { public static class HistoricalTimerangeItem extends TimerangeItem { public double diff; public HistoricalTimerangeItem (Timerange timerange, double q, double w, double diff) { super(timerange, q, w); this.diff = diff; } public double[] get(double[] wq) { if (wq.length >= 3) { wq[0] = w; wq[1] = q; wq[2] = diff; } else if (wq.length >= 2) { return super.get(wq); } return wq; } } protected TDoubleArrayList diffs; public HistoricalWQTimerange(String name) { super(name); diffs = new TDoubleArrayList(); } public void add(double w, double q, double diff, Timerange t) { ws.add(w); qs.add(q); ts.add(t); diffs.add(diff); } /** * This method requires a 3dim double array for <i>res</i>! */ @Override public double[] get(int idx, double[] res) { res[0] = ws.getQuick(idx); res[1] = qs.getQuick(idx); res[2] = diffs.getQuick(idx); return res; } public double[] getDiffs() { return diffs.toNativeArray(); } @Override public List<TimerangeItem> sort() { ArrayList<TimerangeItem> items = new ArrayList<TimerangeItem>(ts.size()); for (int i = 0, n = size(); i < n; i++) { items.add(new HistoricalTimerangeItem(getTimerange(i), getQ(i), getW(i), diffs.get(i))); } Collections.sort(items); return items; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :