EOS 2  1.1.0
Einfache Objektbasierte Sprache
Interval.java
gehe zur Dokumentation dieser Datei
1 package de.lathanda.eos.base.util;
2 
3 import java.util.Comparator;
12 public interface Interval {
13  enum Place {
19  HIGHER
20  }
25  double getLow();
30  double getHigh();
36  default Place locate(double value) {
37  if (value > getHigh() ) {
38  return Place.HIGHER;
39  } else if (value < getLow()) {
40  return Place.LOWER;
41  } else {
42  return Place.BETWEEN;
43  }
44  }
51  default double getCenter() {
52  return (getLow() + getHigh()) / 2d;
53  }
57  static class LowAscComparator<T extends Interval & Comparable<T> > implements Comparator<T> {
58  @Override
59  public int compare(T a, T b) {
60  double aLow = a.getLow();
61  double bLow = b.getLow();
62  if (aLow == bLow) {
63  return a.compareTo(b);
64  } else {
65  return Double.compare(aLow, bLow);
66  }
67  }
68  }
72  static class LowDescComparator<T extends Interval & Comparable<T> > implements Comparator<T> {
73  @Override
74  public int compare(T a, T b) {
75  double aLow = a.getLow();
76  double bLow = b.getLow();
77  if (aLow == bLow) {
78  return b.compareTo(a);
79  } else {
80  return Double.compare(bLow, aLow);
81  }
82  }
83  }
87  static class HighAscComparator<T extends Interval & Comparable<T> > implements Comparator<T> {
88  @Override
89  public int compare(T a, T b) {
90  double aHigh = a.getHigh();
91  double bHigh = b.getHigh();
92  if (aHigh == bHigh) {
93  return a.compareTo(b);
94  } else {
95  return Double.compare(aHigh, bHigh);
96  }
97  }
98  }
102  static class HighDescComparator<T extends Interval & Comparable<T> > implements Comparator<T> {
103  @Override
104  public int compare(T a, T b) {
105  double aHigh = a.getHigh();
106  double bHigh = b.getHigh();
107  if (aHigh == bHigh) {
108  return b.compareTo(a);
109  } else {
110  return Double.compare(bHigh, aHigh);
111  }
112  }
113  }
114 }
default Place locate(double value)
Definition: Interval.java:36
Impressum