summaryrefslogtreecommitdiffstats
path: root/vdslib
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahoo-inc.com>2017-04-20 14:58:00 +0200
committerArne H Juul <arnej@yahoo-inc.com>2017-04-20 15:17:25 +0200
commit53e55b673eec21371b9ff6e5a8fe75d7f213efac (patch)
tree4c9296aebbd6e8ba3b57cfd62fc34f0d00957a1a /vdslib
parenteeeb1461b9a2ed19bbc49741671fbd105fc504c2 (diff)
implement hashCode to avoid warning
Diffstat (limited to 'vdslib')
-rw-r--r--vdslib/src/main/java/com/yahoo/vdslib/state/ClusterState.java11
-rw-r--r--vdslib/src/main/java/com/yahoo/vdslib/state/DiskState.java7
-rw-r--r--vdslib/src/test/java/com/yahoo/vdslib/distribution/DistributionTestFactory.java4
3 files changed, 22 insertions, 0 deletions
diff --git a/vdslib/src/main/java/com/yahoo/vdslib/state/ClusterState.java b/vdslib/src/main/java/com/yahoo/vdslib/state/ClusterState.java
index a54f1971d21..a1c468a1372 100644
--- a/vdslib/src/main/java/com/yahoo/vdslib/state/ClusterState.java
+++ b/vdslib/src/main/java/com/yahoo/vdslib/state/ClusterState.java
@@ -66,6 +66,7 @@ public class ClusterState implements Cloneable {
}
}
+ @Override
public boolean equals(Object o) {
if (!(o instanceof ClusterState)) { return false; }
ClusterState other = (ClusterState) o;
@@ -80,6 +81,16 @@ public class ClusterState implements Cloneable {
return true;
}
+ @Override
+ public int hashCode() {
+ int hc = version * 211;
+ hc += state.hashCode() * 97;
+ hc += distributionBits * 31;
+ hc += nodeCount.hashCode() * 7;
+ hc += nodeStates.hashCode();
+ return hc;
+ }
+
@FunctionalInterface
private interface NodeStateCmp {
boolean similar(NodeType nodeType, NodeState lhs, NodeState rhs);
diff --git a/vdslib/src/main/java/com/yahoo/vdslib/state/DiskState.java b/vdslib/src/main/java/com/yahoo/vdslib/state/DiskState.java
index fb91af14f90..e0d9ad533f4 100644
--- a/vdslib/src/main/java/com/yahoo/vdslib/state/DiskState.java
+++ b/vdslib/src/main/java/com/yahoo/vdslib/state/DiskState.java
@@ -115,6 +115,7 @@ public class DiskState implements Cloneable {
return sb.toString();
}
+ @Override
public boolean equals(Object o) {
if (!(o instanceof DiskState)) { return false; }
DiskState other = (DiskState) o;
@@ -125,4 +126,10 @@ public class DiskState implements Cloneable {
}
return false;
}
+
+ @Override
+ public int hashCode() {
+ // NOTE: capacity cannot be part of the hashCode
+ return state.hashCode();
+ }
}
diff --git a/vdslib/src/test/java/com/yahoo/vdslib/distribution/DistributionTestFactory.java b/vdslib/src/test/java/com/yahoo/vdslib/distribution/DistributionTestFactory.java
index abd6ef70d35..c3a8647d95b 100644
--- a/vdslib/src/test/java/com/yahoo/vdslib/distribution/DistributionTestFactory.java
+++ b/vdslib/src/test/java/com/yahoo/vdslib/distribution/DistributionTestFactory.java
@@ -51,6 +51,10 @@ public class DistributionTestFactory extends CrossPlatformTestFactory {
&& failure.equals(t.failure));
}
+ public int hashCode() {
+ return bucket.hashCode() + nodes.hashCode() + disks.hashCode();
+ }
+
public String toString() {
StringBuilder sb = new StringBuilder().append(bucket.toString());
if (failure == Failure.NONE) {