sascha@2783: package de.intevation.flys.artifacts.model.fixings; sascha@2783: sascha@2783: import java.io.Serializable; sascha@2783: sascha@2783: import java.util.List; sascha@2783: import java.util.ArrayList; sascha@2783: import java.util.Collections; sascha@2783: sascha@2783: public class DeltaWTsKM sascha@2783: implements Serializable sascha@2783: { sascha@2783: public static final double EPSILON = 1e-5; sascha@2783: sascha@2783: public static class KM sascha@2783: implements Serializable, Comparable sascha@2783: { sascha@2783: protected double km; sascha@2783: sascha@2783: protected List deltaWTs; sascha@2783: sascha@2783: public KM() { sascha@2783: deltaWTs = new ArrayList(); sascha@2783: } sascha@2783: sascha@2783: public KM(double km) { sascha@2783: this(); sascha@2783: this.km = km; sascha@2783: } sascha@2783: sascha@2783: public double getKm() { sascha@2783: return km; sascha@2783: } sascha@2783: sascha@2783: public void setKm(double km) { sascha@2783: this.km = km; sascha@2783: } sascha@2783: sascha@2783: public List getDeltaWTs() { sascha@2783: return deltaWTs; sascha@2783: } sascha@2783: sascha@2783: public void setDeltaWTs(List deltaWTs) { sascha@2783: this.deltaWTs = deltaWTs; sascha@2783: } sascha@2783: sascha@2783: public void add(DeltaWT deltaWT) { sascha@2783: deltaWTs.add(deltaWT); sascha@2783: } sascha@2783: sascha@2783: @Override sascha@2783: public int compareTo(KM other) { sascha@2783: double d = km - other.km; sascha@2783: if (d < -EPSILON) return -1; sascha@2783: if (d > EPSILON) return +1; sascha@2783: return 0; sascha@2783: } sascha@2783: } // class KM sascha@2783: sascha@2783: protected List kms; sascha@2783: sascha@2783: public DeltaWTsKM() { sascha@2783: this(10); sascha@2783: } sascha@2783: sascha@2783: public DeltaWTsKM(int capacity) { sascha@2783: kms = new ArrayList(capacity); sascha@2783: } sascha@2783: sascha@2783: public void add(KM km) { sascha@2783: kms.add(km); sascha@2783: } sascha@2783: sascha@2783: public void sort() { sascha@2783: Collections.sort(kms); sascha@2783: } sascha@2783: sascha@2783: public KM findByKm(double km) { sascha@2783: int idx = Collections.binarySearch(kms, new KM(km)); sascha@2783: return idx >= 0 ? kms.get(idx) : null; sascha@2783: } sascha@2787: sascha@2787: public List getKms() { sascha@2787: return kms; sascha@2787: } sascha@2783: } sascha@2783: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :