You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by mm...@apache.org on 2017/10/19 19:51:21 UTC
[accumulo] branch master updated: ACCUMULO-4722 Use Objects.equals
in Pairs class" (#309)
This is an automated email from the ASF dual-hosted git repository.
mmiller pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/master by this push:
new 255aa8f ACCUMULO-4722 Use Objects.equals in Pairs class" (#309)
255aa8f is described below
commit 255aa8f4faa5382194b10e02b2e7b6bf28440e32
Author: Mark Owens <jm...@gmail.com>
AuthorDate: Thu Oct 19 15:51:19 2017 -0400
ACCUMULO-4722 Use Objects.equals in Pairs class" (#309)
Removed private equals and hashCode methods in Pairs class and instead made use of the
java.util.Objects.equals method. Updated the test class to verify
several variations of the equals and hashCode method.
---
.../java/org/apache/accumulo/core/util/Pair.java | 20 +++--------
.../org/apache/accumulo/core/util/PairTest.java | 40 ++++++++++++++++++++--
2 files changed, 42 insertions(+), 18 deletions(-)
diff --git a/core/src/main/java/org/apache/accumulo/core/util/Pair.java b/core/src/main/java/org/apache/accumulo/core/util/Pair.java
index 37fb04f..55333d5 100644
--- a/core/src/main/java/org/apache/accumulo/core/util/Pair.java
+++ b/core/src/main/java/org/apache/accumulo/core/util/Pair.java
@@ -18,6 +18,7 @@ package org.apache.accumulo.core.util;
import java.util.AbstractMap.SimpleImmutableEntry;
import java.util.Map.Entry;
+import java.util.Objects;
public class Pair<A,B> {
A first;
@@ -28,29 +29,16 @@ public class Pair<A,B> {
this.second = s;
}
- private int hashCode(Object o) {
- if (o == null)
- return 0;
- return o.hashCode();
- }
-
@Override
public int hashCode() {
- return hashCode(first) + hashCode(second);
- }
-
- private boolean equals(Object o1, Object o2) {
- if (o1 == null || o2 == null)
- return o1 == o2;
-
- return o1.equals(o2);
+ return Objects.hashCode(first) + Objects.hashCode(second);
}
@Override
public boolean equals(Object o) {
if (o instanceof Pair<?,?>) {
- Pair<?,?> op = (Pair<?,?>) o;
- return equals(first, op.first) && equals(second, op.second);
+ Pair<?,?> other = (Pair<?,?>) o;
+ return Objects.equals(first, other.first) && Objects.equals(second, other.second);
}
return false;
}
diff --git a/core/src/test/java/org/apache/accumulo/core/util/PairTest.java b/core/src/test/java/org/apache/accumulo/core/util/PairTest.java
index 6effc9e..b6c0e82 100644
--- a/core/src/test/java/org/apache/accumulo/core/util/PairTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/util/PairTest.java
@@ -17,6 +17,10 @@
package org.apache.accumulo.core.util;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertTrue;
import java.util.AbstractMap.SimpleImmutableEntry;
import java.util.Map.Entry;
@@ -26,13 +30,45 @@ import org.junit.Test;
public class PairTest {
/**
+ * Test method for {@link org.apache.accumulo.core.util.Pair#hashCode()}.
+ */
+ @Test
+ public void testHashMethod() {
+ Pair<Integer,String> pair1 = new Pair<>(25, "twenty-five");
+ Pair<Integer,String> pair2 = new Pair<>(25, "twenty-five");
+ Pair<Integer,String> pair3 = new Pair<>(null, null);
+ Pair<Integer,String> pair4 = new Pair<>(25, "twentyfive");
+ Pair<Integer,String> pair5 = new Pair<>(225, "twenty-five");
+ assertNotSame(pair1, pair2);
+ assertEquals(pair1.hashCode(), pair2.hashCode());
+ assertNotSame(pair2, pair3);
+ assertNotEquals(pair1.hashCode(), pair4.hashCode());
+ assertNotEquals(pair1.hashCode(), pair5.hashCode());
+ }
+
+ /**
* Test method for {@link org.apache.accumulo.core.util.Pair#equals(java.lang.Object)}.
*/
@Test
public void testEqualsObject() {
- Pair<Integer,String> pair = new Pair<>(25, "twenty-five");
+ Pair<Integer,String> pair1 = new Pair<>(25, "twenty-five");
Pair<Integer,String> pair2 = new Pair<>(25, "twenty-five");
- assertEquals(pair, pair2);
+ Pair<Integer,String> pair3 = new Pair<>(25, "twentyfive");
+ Pair<Integer,String> null1 = null;
+
+ assertEquals(pair1, pair1);
+ assertEquals(pair2, pair1);
+ assertNotEquals(pair1, pair3);
+
+ // verify direct calls
+ assertTrue(pair1.equals(pair2));
+ assertTrue(pair2.equals(pair1));
+ assertFalse(pair1.equals(pair3));
+
+ // check null
+ assertEquals(null1, null1);
+ assertEquals(null1, null);
+ assertNotEquals(pair1, null1);
}
/**
--
To stop receiving notification emails like this one, please contact
['"commits@accumulo.apache.org" <co...@accumulo.apache.org>'].