From 424b4b473d472d6a72e0e0bade7a4df475057fa9 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 30 Dec 2016 13:32:19 +0100 Subject: [PATCH] BUG-7464: Hide LNode's listmap 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 --- .../opendaylight/yangtools/triemap/LNode.java | 26 ++++++++++--------- .../yangtools/triemap/TrieMap.java | 2 +- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/LNode.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/LNode.java index a0570f5e02..2f2c96c0e5 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/LNode.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/LNode.java @@ -15,31 +15,28 @@ */ package org.opendaylight.yangtools.triemap; +import java.util.Iterator; import java.util.Map.Entry; -final class LNode extends MainNode { - final ListMap listmap; +final class LNode extends MainNode implements Iterable> { + private final ListMap listmap; - LNode(final ListMap listmap) { + private LNode(final ListMap 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 inserted(final K k, final V v) { - return new LNode<> (listmap.add (k, v)); + return new LNode<>(listmap.add(k, v)); } - MainNode removed (final K k, final TrieMap ct) { - ListMap updmap = listmap.remove(k); - if (updmap.size () > 1) { - return new LNode<> (updmap); + MainNode removed(final K k, final TrieMap ct) { + final ListMap updmap = listmap.remove(k); + if (updmap.size() > 1) { + return new LNode<>(updmap); } final Entry kv = updmap.iterator().next(); @@ -61,4 +58,9 @@ final class LNode extends MainNode { // (" " * lev) + "LNode(%s)".format(listmap.mkString(", ")) return "LNode"; } + + @Override + public Iterator> iterator() { + return listmap.iterator(); + } } \ No newline at end of file diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/TrieMap.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/TrieMap.java index c643af27b9..ce9409e8c0 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/TrieMap.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/TrieMap.java @@ -709,7 +709,7 @@ public class TrieMap extends AbstractMap implements ConcurrentMap) m; } else if (m instanceof LNode) { - subiter = ((LNode) m).listmap.iterator (); + subiter = ((LNode) m).iterator(); checkSubiter (); } else if (m == null) { current = null; -- 2.36.6