Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/WQTimerange.java @ 5831:bd047b71ab37
Repaired internal references
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 12:06:39 +0200 |
parents | flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQTimerange.java@61f4d4164a30 |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/WQTimerange.java Thu Apr 25 12:06:39 2013 +0200 @@ -0,0 +1,96 @@ +package org.dive4elements.river.artifacts.model; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + + +/** + * A collection of triples W,Q,Timerange. + * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> + */ +public class WQTimerange extends WQ { + + /** Used to sort <w,q,timerange> triples. */ + public static class TimerangeItem implements Comparable<TimerangeItem> { + public double q; + public double w; + public Timerange timerange; + + public TimerangeItem (Timerange timerange, double q, double w) { + this.timerange = timerange; + this.q = q; + this.w = w; + } + + /** Sets [w,q] in wq. */ + public double[] get(double[] wq) { + if (wq.length >= 2) { + wq[0] = w; + wq[1] = q; + } + + return wq; + } + + @Override + public int compareTo(TimerangeItem other) { + if (other.timerange.getStart() < timerange.getStart()) { + return 1; + } + else if (other.timerange.getStart() > timerange.getStart()) { + return -1; + } + else if (other.timerange.getEnd() < timerange.getEnd()) { + return 1; + } + else if (other.timerange.getEnd() > timerange.getEnd()){ + return -1; + } + else { + return 0; + } + } + } + + protected List<Timerange> timeranges; + + + public WQTimerange() { + super(""); + } + + + public WQTimerange(String name) { + super(name); + timeranges = new ArrayList<Timerange>(); + } + + + public void add(double w, double q, Timerange t) { + ws.add(w); + qs.add(q); + timeranges.add(t); + } + + + public Timerange getTimerange(int idx) { + return timeranges.get(idx); + } + + + public Timerange[] getTimeranges() { + return timeranges.toArray(new Timerange[timeranges.size()]); + } + + public List<TimerangeItem> sort() { + ArrayList<TimerangeItem> items = new ArrayList<TimerangeItem>(timeranges.size()); + for (int i = 0, n = size(); i < n; i++) { + items.add(new TimerangeItem(getTimerange(i), getQ(i), getW(i))); + } + + Collections.sort(items); + return items; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :