summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java
diff options
context:
space:
mode:
authorbjculkin <bjculkin@mix.wvu.edu>2017-03-17 19:28:59 -0400
committerbjculkin <bjculkin@mix.wvu.edu>2017-03-17 19:28:59 -0400
commit5832ef0286430d04484b70d49c73e081a80ec9c7 (patch)
tree04ab56561978c14415f71b934f7d8a3aaa1a037e /BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java
parentc8593896ba0d93c9512a71c2e70d1d503627b1b0 (diff)
Add more toString/hashCode/equals
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java29
1 files changed, 22 insertions, 7 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java b/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java
index d19eed9..ea49b4c 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java
@@ -204,10 +204,12 @@ public class LazyPair<LeftType, RightType> implements IPair<LeftType, RightType>
public int hashCode() {
final int prime = 31;
int result = 1;
+
result = prime * result + (leftMaterialized ? 1231 : 1237);
result = prime * result + ((leftValue == null) ? 0 : leftValue.hashCode());
result = prime * result + (rightMaterialized ? 1231 : 1237);
result = prime * result + ((rightValue == null) ? 0 : rightValue.hashCode());
+
return result;
}
@@ -216,15 +218,28 @@ public class LazyPair<LeftType, RightType> implements IPair<LeftType, RightType>
if(this == obj) return true;
if(obj == null) return false;
if(getClass() != obj.getClass()) return false;
- LazyPair other = (LazyPair) obj;
+
+ LazyPair<?, ?> other = (LazyPair<?, ?>) obj;
+
if(leftMaterialized != other.leftMaterialized) return false;
- if(leftValue == null) {
- if(other.leftValue != null) return false;
- } else if(!leftValue.equals(other.leftValue)) return false;
+
+ if(leftMaterialized) {
+ if(leftValue == null) {
+ if(other.leftValue != null) return false;
+ } else if(!leftValue.equals(other.leftValue)) return false;
+ } else {
+ return false;
+ }
+
if(rightMaterialized != other.rightMaterialized) return false;
- if(rightValue == null) {
- if(other.rightValue != null) return false;
- } else if(!rightValue.equals(other.rightValue)) return false;
+ if(rightMaterialized) {
+ if(rightValue == null) {
+ if(other.rightValue != null) return false;
+ } else if(!rightValue.equals(other.rightValue)) return false;
+ } else {
+ return false;
+ }
+
return true;
}
}