diff --git a/common/src/main/java/com/dfsek/terra/api/util/generic/either/Either.java b/common/src/main/java/com/dfsek/terra/api/util/generic/either/Either.java index cad5d93bf..95841e082 100644 --- a/common/src/main/java/com/dfsek/terra/api/util/generic/either/Either.java +++ b/common/src/main/java/com/dfsek/terra/api/util/generic/either/Either.java @@ -49,4 +49,21 @@ public final class Either { public boolean hasRight() { return !leftPresent; } + + @Override + public int hashCode() { + if(hasLeft()) return left.hashCode(); + return right.hashCode(); + } + + @Override + public boolean equals(Object o) { + if(!(o instanceof Either)) return false; + + Either that = (Either) o; + + if(hasLeft() && that.hasLeft()) return left.equals(that.left); + if(hasRight() && that.hasRight()) return right.equals(that.right); + return false; + } } diff --git a/common/src/main/java/com/dfsek/terra/api/util/generic/pair/ImmutablePair.java b/common/src/main/java/com/dfsek/terra/api/util/generic/pair/ImmutablePair.java index f58cbb52b..6984b613a 100644 --- a/common/src/main/java/com/dfsek/terra/api/util/generic/pair/ImmutablePair.java +++ b/common/src/main/java/com/dfsek/terra/api/util/generic/pair/ImmutablePair.java @@ -1,5 +1,7 @@ package com.dfsek.terra.api.util.generic.pair; +import java.util.Objects; + public class ImmutablePair { private final L left; private final R right; @@ -24,4 +26,15 @@ public class ImmutablePair { public Pair mutable() { return new Pair<>(left, right); } + @Override + public int hashCode() { + return Objects.hash(left, right); + } + + @Override + public boolean equals(Object o) { + if(!(o instanceof ImmutablePair)) return false; + ImmutablePair that = (ImmutablePair) o; + return that.left.equals(left) && that.right.equals(right); + } } diff --git a/common/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java b/common/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java index dcb0be070..e190a3331 100644 --- a/common/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java +++ b/common/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java @@ -1,5 +1,7 @@ package com.dfsek.terra.api.util.generic.pair; +import java.util.Objects; + public class Pair { private L left; private R right; @@ -32,4 +34,16 @@ public class Pair { public ImmutablePair immutable() { return new ImmutablePair<>(left, right); } + + @Override + public int hashCode() { + return Objects.hash(left, right); + } + + @Override + public boolean equals(Object o) { + if(!(o instanceof Pair)) return false; + Pair that = (Pair) o; + return that.left.equals(left) && that.right.equals(right); + } }