BUG-7464: Hide LNode's listmap 71/49871/6
authorRobert Varga <rovarga@cisco.com>
Fri, 30 Dec 2016 12:32:19 +0000 (13:32 +0100)
committerRobert Varga <rovarga@cisco.com>
Mon, 9 Jan 2017 14:17:12 +0000 (15:17 +0100)
The only access to it is to acquire an iterator, hence provide
an Iterable wrapper and make the field final.

Change-Id: Ifff37e80d6275dc0b72b5c3f83ac089052d39b3e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/LNode.java
third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/TrieMap.java

index a0570f5e0294254b96183edcd5437ca140ba37aa..2f2c96c0e594d72ce7a1e23ea4d01c5a65649115 100644 (file)
  */
 package org.opendaylight.yangtools.triemap;
 
+import java.util.Iterator;
 import java.util.Map.Entry;
 
-final class LNode<K, V> extends MainNode<K, V> {
-    final ListMap<K, V> listmap;
+final class LNode<K, V> extends MainNode<K, V> implements Iterable<Entry<K, V>> {
+    private final ListMap<K, V> listmap;
 
-    LNode(final ListMap<K, V> listmap) {
+    private LNode(final ListMap<K, V> listmap) {
         this.listmap = listmap;
     }
 
-    LNode(final K k, final V v) {
-        this(ListMap.map(k, v));
-    }
-
     LNode(final K k1, final V v1, final K k2, final V v2) {
         this(ListMap.map(k1, v1, k2, v2));
     }
 
     LNode<K, V> inserted(final K k, final V v) {
-        return new LNode<> (listmap.add (k, v));
+        return new LNode<>(listmap.add(k, v));
     }
 
-    MainNode<K, V> removed (final K k, final TrieMap<K, V> ct) {
-        ListMap<K, V> updmap = listmap.remove(k);
-        if (updmap.size () > 1) {
-            return new LNode<> (updmap);
+    MainNode<K, V> removed(final K k, final TrieMap<K, V> ct) {
+        final ListMap<K, V> updmap = listmap.remove(k);
+        if (updmap.size() > 1) {
+            return new LNode<>(updmap);
         }
 
         final Entry<K, V> kv = updmap.iterator().next();
@@ -61,4 +58,9 @@ final class LNode<K, V> extends MainNode<K, V> {
         // (" " * lev) + "LNode(%s)".format(listmap.mkString(", "))
         return "LNode";
     }
+
+    @Override
+    public Iterator<Entry<K, V>> iterator() {
+        return listmap.iterator();
+    }
 }
\ No newline at end of file
index c643af27b955204599943c93dd1456d4bfd18eb3..ce9409e8c0999ede623be99e17cda8344c373352 100644 (file)
@@ -709,7 +709,7 @@ public class TrieMap<K, V> extends AbstractMap<K, V> implements ConcurrentMap<K,
             } else if (m instanceof TNode) {
                 current = (TNode<K, V>) m;
             } else if (m instanceof LNode) {
-                subiter = ((LNode<K, V>) m).listmap.iterator ();
+                subiter = ((LNode<K, V>) m).iterator();
                 checkSubiter ();
             } else if (m == null) {
                 current = null;