comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/Range.java @ 6380:dc23ffb9d82c

Range: Add start and end setters, doc, clone function.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 21 Jun 2013 11:34:22 +0200
parents 2ad7f3ada1dc
children 1e97d2e95410
comparison
equal deleted inserted replaced
6379:9d5f09698d81 6380:dc23ffb9d82c
29 public Range(double start, double end) { 29 public Range(double start, double end) {
30 this.start = start; 30 this.start = start;
31 this.end = end; 31 this.end = end;
32 } 32 }
33 33
34 public void setStart(double start) {
35 this.start = start;
36 }
37
34 public double getStart() { 38 public double getStart() {
35 return start; 39 return start;
40 }
41
42
43 public void setEnd(double end) {
44 this.end = end;
36 } 45 }
37 46
38 public double getEnd() { 47 public double getEnd() {
39 return end; 48 return end;
40 } 49 }
68 /** True if start>x<end (+ some epsilon) . */ 77 /** True if start>x<end (+ some epsilon) . */
69 public boolean inside(double x) { 78 public boolean inside(double x) {
70 return x > start-EPSILON && x < end+EPSILON; 79 return x > start-EPSILON && x < end+EPSILON;
71 } 80 }
72 81
82 public boolean contains(double x) {
83 return inside(x);
84 }
85
86
87 /** Hash Code. */
73 @Override 88 @Override
74 public int hashCode() { 89 public int hashCode() {
75 return new Double(this.start).hashCode() ^ 90 return new Double(this.start).hashCode() ^
76 new Double(this.end).hashCode(); 91 new Double(this.end).hashCode();
77 } 92 }
78 93
94
95 /**
96 * Compares start and end values with some epsilon.
97 */
79 @Override 98 @Override
80 public boolean equals(Object otherRange) { 99 public boolean equals(Object otherRange) {
81 if (otherRange instanceof Range) { 100 if (otherRange instanceof Range) {
82 Range oRange = (Range) otherRange; 101 Range oRange = (Range) otherRange;
83 return 102 return
84 Math.abs(oRange.start - this.start) <= EPSILON 103 Math.abs(oRange.start - this.start) <= EPSILON
85 && Math.abs(oRange.end - this.end) <= EPSILON; 104 && Math.abs(oRange.end - this.end) <= EPSILON;
86 } 105 }
87 return false; 106 return false;
88 } 107 }
108
109 /** Returns clone with same start and end values. */
110 @Override
111 public Object clone() {
112 return new Range(this.start, this.end);
113 }
89 } 114 }
90 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 115 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org