comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/DeltaWTsKM.java @ 2783:cbb513a8f548

FixA: km indexed datastructure for delta w/t results. flys-artifacts/trunk@4522 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 25 May 2012 13:49:27 +0000
parents
children e63969c173e9
comparison
equal deleted inserted replaced
2782:7c2b24fb0316 2783:cbb513a8f548
1 package de.intevation.flys.artifacts.model.fixings;
2
3 import java.io.Serializable;
4
5 import java.util.Date;
6 import java.util.List;
7 import java.util.ArrayList;
8 import java.util.Collections;
9
10 public class DeltaWTsKM
11 implements Serializable
12 {
13 public static final double EPSILON = 1e-5;
14
15 public static class KM
16 implements Serializable, Comparable<KM>
17 {
18 protected double km;
19
20 protected List<DeltaWT> deltaWTs;
21
22 public KM() {
23 deltaWTs = new ArrayList<DeltaWT>();
24 }
25
26 public KM(double km) {
27 this();
28 this.km = km;
29 }
30
31 public double getKm() {
32 return km;
33 }
34
35 public void setKm(double km) {
36 this.km = km;
37 }
38
39 public List<DeltaWT> getDeltaWTs() {
40 return deltaWTs;
41 }
42
43 public void setDeltaWTs(List<DeltaWT> deltaWTs) {
44 this.deltaWTs = deltaWTs;
45 }
46
47 public void add(DeltaWT deltaWT) {
48 deltaWTs.add(deltaWT);
49 }
50
51 @Override
52 public int compareTo(KM other) {
53 double d = km - other.km;
54 if (d < -EPSILON) return -1;
55 if (d > EPSILON) return +1;
56 return 0;
57 }
58 } // class KM
59
60 protected List<KM> kms;
61
62 public DeltaWTsKM() {
63 this(10);
64 }
65
66 public DeltaWTsKM(int capacity) {
67 kms = new ArrayList<KM>(capacity);
68 }
69
70 public void add(KM km) {
71 kms.add(km);
72 }
73
74 public void sort() {
75 Collections.sort(kms);
76 }
77
78 public KM findByKm(double km) {
79 int idx = Collections.binarySearch(kms, new KM(km));
80 return idx >= 0 ? kms.get(idx) : null;
81 }
82 }
83 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org