BUG-7464: Add a dedicated ImmutableEntrySet
[yangtools.git] / third-party / triemap / src / main / java / org / opendaylight / yangtools / triemap / TNode.java
index 27a925cc8ef094214b36c6fd6ce843e94c303d77..86afdfa15b451b7c7f9c94f8655a9fe04aca0223 100644 (file)
  */
 package org.opendaylight.yangtools.triemap;
 
-import java.util.AbstractMap.SimpleImmutableEntry;
-import java.util.Map.Entry;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
-final class TNode<K, V> extends MainNode<K, V> implements KVNode<K, V> {
+final class TNode<K, V> extends MainNode<K, V> implements EntryNode<K, V> {
     final K k;
     final V v;
     final int hc;
@@ -42,12 +41,7 @@ final class TNode<K, V> extends MainNode<K, V> implements KVNode<K, V> {
     }
 
     @Override
-    public Entry<K, V> kvPair () {
-        return new SimpleImmutableEntry<>(k, v);
-    }
-
-    @Override
-    int cachedSize(final TrieMap<K, V> ct) {
+    int cachedSize(final TrieMap<?, ?> ct) {
         return 1;
     }
 
@@ -56,4 +50,30 @@ final class TNode<K, V> extends MainNode<K, V> implements KVNode<K, V> {
         // ("  " * lev) + "TNode(%s, %s, %x, !)".format(k, v, hc);
         return "TNode";
     }
+
+    @Override
+    public K getKey() {
+        return k;
+    }
+
+    @Override
+    public V getValue() {
+        return v;
+    }
+
+    @Override
+    public int hashCode() {
+        return EntryUtil.hash(k, v);
+    }
+
+    @SuppressFBWarnings(value = "EQ_UNUSUAL",  justification = "Equality handled by utility methods")
+    @Override
+    public boolean equals(final Object o) {
+        return EntryUtil.equal(o, k, v);
+    }
+
+    @Override
+    public String toString() {
+        return EntryUtil.string(k, v);
+    }
 }
\ No newline at end of file