1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package com.nickokiss.investor.util;
22
23 import java.math.BigDecimal;
24
25 import com.nickokiss.investor.calc.MathCalc;
26
27
28
29
30
31 public class Range {
32 private MathCalc mathCalc = new MathCalc();
33 private BigDecimal start;
34 private BigDecimal end;
35
36 public Range(BigDecimal start, BigDecimal end) {
37 this.end = end;
38 this.start = start;
39 }
40
41 public Range(Range range) {
42 this.start = range.getStart();
43 this.end = range.getEnd();
44 }
45
46 public BigDecimal getStart() {
47 return start;
48 }
49 public void setStart(BigDecimal start) {
50 this.start = start;
51 }
52 public BigDecimal getEnd() {
53 return end;
54 }
55 public void setEnd(BigDecimal end) {
56 this.end = end;
57 }
58
59 public BigDecimal getSize() {
60 return end.subtract(start);
61 }
62
63 public BigDecimal getMiddle() {
64 return start.add(mathCalc.div(getSize(), mathCalc.TWO));
65 }
66
67 public Range getUpperHalf() {
68 return new Range(getMiddle(), end);
69 }
70
71 public Range getLowerHalf() {
72 return new Range(start, getMiddle());
73 }
74
75 public boolean contains(BigDecimal value) {
76 if ((value.compareTo(end) <= 0) && (value.compareTo(start) >= 0)) {
77 return true;
78 } else {
79 return false;
80 }
81 }
82
83 public BigDecimal getDistance(BigDecimal value) {
84 if (value.compareTo(end) > 0) {
85 return value.subtract(end);
86 }
87 if (value.compareTo(start) < 0) {
88 return value.subtract(start);
89 }
90 return mathCalc.ZERO;
91 }
92
93
94
95 }