diff options
| -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 { |
