diff options
| author | Ben Culkin <scorpress@gmail.com> | 2020-12-31 20:12:48 -0500 |
|---|---|---|
| committer | Ben Culkin <scorpress@gmail.com> | 2020-12-31 20:12:48 -0500 |
| commit | e65b232324ab7a50dfdae4744a9d411c4de1ffec (patch) | |
| tree | 54b921a1842f0dc69cfb8719e04e6688ffa76772 | |
| parent | fedb385feef3fb3e3419f4fc3c7d234fe8d5caec (diff) | |
add hashcode/toEquals for LevelRange
| -rw-r--r-- | src/main/java/tlIItools/LevelRange.java | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/src/main/java/tlIItools/LevelRange.java b/src/main/java/tlIItools/LevelRange.java index f899df12..015fae4e 100644 --- a/src/main/java/tlIItools/LevelRange.java +++ b/src/main/java/tlIItools/LevelRange.java @@ -1,5 +1,7 @@ package tlIItools; +import java.util.*; + public class LevelRange implements Comparable<LevelRange> { /* * if (minLevel <= 1 && maxLevel == 999) { @@ -72,6 +74,29 @@ public class LevelRange implements Comparable<LevelRange> { } @Override + public int hashCode() { + clamp(); + + return Objects.hash(maxLevel, minLevel); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + LevelRange other = (LevelRange) obj; + + clamp(); + other.clamp(); + + return maxLevel == other.maxLevel && minLevel == other.minLevel; + } + + @Override public int compareTo(LevelRange other) { if (this.equals(other)) return 0; @@ -79,7 +104,11 @@ public class LevelRange implements Comparable<LevelRange> { if (isUnrestricted()) return 1; if (noLowerBound()) { - return maxLevel - other.maxLevel; + if (other.noLowerBound()) { + return maxLevel - other.maxLevel; + } else { + return -1; + } } else if (noUpperBound()) { return minLevel - other.minLevel; } else { |
