ingo@2217: package de.intevation.flys.artifacts.model; ingo@2217: ingo@2217: import java.util.ArrayList; christian@4183: import java.util.Collections; ingo@2217: import java.util.List; ingo@2217: ingo@2217: ingo@2217: /** ingo@2217: * @author Ingo Weinzierl ingo@2217: */ ingo@2217: public class WQTimerange extends WQ { ingo@2217: christian@4183: public static class TimerangeItem implements Comparable { christian@4183: public double q; christian@4183: public double w; christian@4183: public Timerange timerange; christian@4183: christian@4183: public TimerangeItem (Timerange timerange, double q, double w) { christian@4183: this.timerange = timerange; christian@4183: this.q = q; christian@4183: this.w = w; christian@4183: } christian@4183: christian@4183: public double[] get(double[] wq) { christian@4183: if (wq.length >= 2) { christian@4183: wq[0] = w; christian@4183: wq[1] = q; christian@4183: } christian@4183: christian@4183: return wq; christian@4183: } christian@4183: christian@4183: @Override christian@4183: public int compareTo(TimerangeItem other) { christian@4183: if (other.timerange.getStart() < timerange.getStart()) { christian@4183: return 1; christian@4183: } christian@4183: else if (other.timerange.getStart() > timerange.getStart()) { christian@4183: return -1; christian@4183: } christian@4183: else if (other.timerange.getEnd() < timerange.getEnd()) { christian@4183: return 1; christian@4183: } christian@4183: else if (other.timerange.getEnd() > timerange.getEnd()){ christian@4183: return -1; christian@4183: } christian@4183: else { christian@4183: return 0; christian@4183: } christian@4183: } christian@4183: } christian@4183: ingo@2217: protected List ts; ingo@2217: ingo@2217: ingo@2217: public WQTimerange() { ingo@2217: super(""); ingo@2217: } ingo@2217: ingo@2217: ingo@2217: public WQTimerange(String name) { ingo@2217: super(name); ingo@2217: ts = new ArrayList(); ingo@2217: } ingo@2217: ingo@2217: ingo@2217: public void add(double w, double q, Timerange t) { ingo@2217: ws.add(w); ingo@2217: qs.add(q); ingo@2217: ts.add(t); ingo@2217: } ingo@2217: ingo@2217: ingo@2239: public Timerange getTimerange(int idx) { ingo@2239: return ts.get(idx); ingo@2239: } ingo@2239: ingo@2239: ingo@2217: public Timerange[] getTimeranges() { sascha@3452: return ts.toArray(new Timerange[ts.size()]); ingo@2217: } christian@4183: christian@4183: public List sort() { christian@4183: ArrayList items = new ArrayList(ts.size()); christian@4183: for (int i = 0, n = size(); i < n; i++) { christian@4183: items.add(new TimerangeItem(getTimerange(i), getQ(i), getW(i))); christian@4183: } christian@4183: christian@4183: Collections.sort(items); christian@4183: return items; christian@4183: } ingo@2217: } ingo@2217: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :