X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=common%2Futil%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Futil%2FReadWriteTrieMap.java;h=788c2d9b66834c961b6e4d1f3ef49c5ae0c35bcf;hb=950c070a8c54b026acf7860094d699052611ab54;hp=7eeb2911ec5a21cd3bc879ed36e9f76c1b23f28a;hpb=c24d6e2f39acbb11e22b5676bb7481ed52bec461;p=yangtools.git
diff --git a/common/util/src/main/java/org/opendaylight/yangtools/util/ReadWriteTrieMap.java b/common/util/src/main/java/org/opendaylight/yangtools/util/ReadWriteTrieMap.java
index 7eeb2911ec..788c2d9b66 100644
--- a/common/util/src/main/java/org/opendaylight/yangtools/util/ReadWriteTrieMap.java
+++ b/common/util/src/main/java/org/opendaylight/yangtools/util/ReadWriteTrieMap.java
@@ -8,12 +8,14 @@
package org.opendaylight.yangtools.util;
import com.google.common.base.Preconditions;
-import com.romix.scala.collection.concurrent.TrieMap;
+import com.google.common.collect.ForwardingMap;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
import javax.annotation.Nonnull;
+import org.opendaylight.yangtools.triemap.MutableTrieMap;
+import org.opendaylight.yangtools.triemap.TrieMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -22,27 +24,34 @@ import org.slf4j.LoggerFactory;
* their size, and determining the size of a TrieMap is expensive, we make sure
* to update it as we go.
*
- *
FIXME: this map does not support modification view the keySet()/values()/entrySet()
- * methods.
+ *
+ * FIXME: this map does not support modification view the keySet()/values()/entrySet() methods.
*
* @param Key type
* @param Value type
*/
-final class ReadWriteTrieMap implements Map {
+final class ReadWriteTrieMap extends ForwardingMap {
private static final Logger LOG = LoggerFactory.getLogger(ReadOnlyTrieMap.class);
- private final TrieMap delegate;
+
+ private final MutableTrieMap delegate;
+
private int size;
ReadWriteTrieMap() {
- this.delegate = new TrieMap<>();
+ this.delegate = TrieMap.create();
this.size = 0;
}
- ReadWriteTrieMap(final TrieMap delegate, final int size) {
+ ReadWriteTrieMap(final MutableTrieMap delegate, final int size) {
this.delegate = Preconditions.checkNotNull(delegate);
this.size = size;
}
+ @Override
+ protected Map delegate() {
+ return delegate;
+ }
+
Map toReadOnly() {
final Map ret = new ReadOnlyTrieMap<>(delegate, size);
LOG.trace("Converted read-write TrieMap {} to read-only {}", this, ret);
@@ -59,21 +68,6 @@ final class ReadWriteTrieMap implements Map {
return size == 0;
}
- @Override
- public boolean containsKey(final Object key) {
- return delegate.containsKey(key);
- }
-
- @Override
- public boolean containsValue(final Object value) {
- return delegate.containsValue(value);
- }
-
- @Override
- public V get(final Object key) {
- return delegate.get(key);
- }
-
@Override
public V put(final K key, final V value) {
final V ret = delegate.put(key, value);
@@ -93,6 +87,7 @@ final class ReadWriteTrieMap implements Map {
}
@Override
+ @SuppressWarnings("checkstyle:parameterName")
public void putAll(@Nonnull final Map extends K, ? extends V> m) {
for (Entry extends K, ? extends V> e : m.entrySet()) {
put(e.getKey(), e.getValue());
@@ -119,14 +114,4 @@ final class ReadWriteTrieMap implements Map {
public Set> entrySet() {
return Collections.unmodifiableSet(delegate.entrySet());
}
-
- @Override
- public boolean equals(final Object o) {
- return delegate.equals(o);
- }
-
- @Override
- public int hashCode() {
- return delegate.hashCode();
- }
}