summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/data/Either.java
diff options
context:
space:
mode:
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/data/Either.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/data/Either.java54
1 files changed, 54 insertions, 0 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/Either.java b/BJC-Utils2/src/main/java/bjc/utils/data/Either.java
index d34f752..334beef 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/data/Either.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/data/Either.java
@@ -132,4 +132,58 @@ public class Either<LeftType, RightType> implements IPair<LeftType, RightType> {
return merger.apply(leftVal, rightVal);
}
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+
+ int result = 1;
+ result = prime * result + (isLeft ? 1231 : 1237);
+ result = prime * result + ((leftVal == null) ? 0 : leftVal.hashCode());
+ result = prime * result + ((rightVal == null) ? 0 : rightVal.hashCode());
+
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if(this == obj) return true;
+ if(obj == null) return false;
+ if(getClass() != obj.getClass()) return false;
+
+ Either<?, ?> other = (Either<?, ?>) obj;
+
+ if(isLeft != other.isLeft) return false;
+
+ if(leftVal == null) {
+ if(other.leftVal != null) return false;
+ } else if(!leftVal.equals(other.leftVal)) return false;
+
+ if(rightVal == null) {
+ if(other.rightVal != null) return false;
+ } else if(!rightVal.equals(other.rightVal)) return false;
+
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+
+ builder.append("Either [");
+
+ if(leftVal != null) {
+ builder.append("leftVal=");
+ builder.append(leftVal);
+ builder.append(", ");
+ }
+
+ if(rightVal != null) {
+ builder.append("rightVal=");
+ builder.append(rightVal);
+ builder.append(", ");
+ }
+
+ return builder.toString();
+ }
}