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 :