From e65b232324ab7a50dfdae4744a9d411c4de1ffec Mon Sep 17 00:00:00 2001 From: Ben Culkin Date: Thu, 31 Dec 2020 20:12:48 -0500 Subject: add hashcode/toEquals for LevelRange --- src/main/java/tlIItools/LevelRange.java | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'src') 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 { /* * if (minLevel <= 1 && maxLevel == 999) { @@ -72,6 +74,29 @@ public class LevelRange implements Comparable { } @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 { 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 { -- cgit v1.2.3