This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-collections.git
commit e39c712757a85f5cf6e4264e471616afa051ace7 Author: Gary Gregory <[email protected]> AuthorDate: Sun Dec 8 14:50:10 2024 -0500 Internal refactoring --- .../commons/collections4/map/MultiKeyMap.java | 52 +++++++++++----------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/main/java/org/apache/commons/collections4/map/MultiKeyMap.java b/src/main/java/org/apache/commons/collections4/map/MultiKeyMap.java index 3876db2b5..e58091c15 100644 --- a/src/main/java/org/apache/commons/collections4/map/MultiKeyMap.java +++ b/src/main/java/org/apache/commons/collections4/map/MultiKeyMap.java @@ -25,6 +25,7 @@ import java.util.Objects; import org.apache.commons.collections4.MapIterator; import org.apache.commons.collections4.keyvalue.MultiKey; +import org.apache.commons.collections4.map.AbstractHashedMap.HashEntry; /** * A {@code Map} implementation that uses multiple keys to map the value. @@ -163,8 +164,7 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K */ public boolean containsKey(final Object key1, final Object key2) { final int hashCode = hash(key1, key2); - AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = - decorated().data[decorated().hashIndex(hashCode, decorated().data.length)]; + AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decoratedHashEntry(hashCode); while (entry != null) { if (entry.hashCode == hashCode && isEqualKey(entry, key1, key2)) { return true; @@ -184,8 +184,7 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K */ public boolean containsKey(final Object key1, final Object key2, final Object key3) { final int hashCode = hash(key1, key2, key3); - AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = - decorated().data[decorated().hashIndex(hashCode, decorated().data.length)]; + AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decoratedHashEntry(hashCode); while (entry != null) { if (entry.hashCode == hashCode && isEqualKey(entry, key1, key2, key3)) { return true; @@ -206,8 +205,7 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K */ public boolean containsKey(final Object key1, final Object key2, final Object key3, final Object key4) { final int hashCode = hash(key1, key2, key3, key4); - AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = - decorated().data[decorated().hashIndex(hashCode, decorated().data.length)]; + AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decoratedHashEntry(hashCode); while (entry != null) { if (entry.hashCode == hashCode && isEqualKey(entry, key1, key2, key3, key4)) { return true; @@ -227,11 +225,9 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K * @param key5 the fifth key * @return true if the map contains the key */ - public boolean containsKey(final Object key1, final Object key2, final Object key3, - final Object key4, final Object key5) { + public boolean containsKey(final Object key1, final Object key2, final Object key3, final Object key4, final Object key5) { final int hashCode = hash(key1, key2, key3, key4, key5); - AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = - decorated().data[decorated().hashIndex(hashCode, decorated().data.length)]; + AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decoratedHashEntry(hashCode); while (entry != null) { if (entry.hashCode == hashCode && isEqualKey(entry, key1, key2, key3, key4, key5)) { return true; @@ -249,6 +245,14 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K return (AbstractHashedMap<MultiKey<? extends K>, V>) super.decorated(); } + HashEntry<MultiKey<? extends K>, V> decoratedHashEntry(final int hashCode) { + return decorated().data[decoratedHashIndex(hashCode)]; + } + + int decoratedHashIndex(final int hashCode) { + return decorated().hashIndex(hashCode, decorated().data.length); + } + /** * Gets the value mapped to the specified multi-key. * @@ -258,8 +262,7 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K */ public V get(final Object key1, final Object key2) { final int hashCode = hash(key1, key2); - AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = - decorated().data[decorated().hashIndex(hashCode, decorated().data.length)]; + AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decoratedHashEntry(hashCode); while (entry != null) { if (entry.hashCode == hashCode && isEqualKey(entry, key1, key2)) { return entry.getValue(); @@ -279,8 +282,7 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K */ public V get(final Object key1, final Object key2, final Object key3) { final int hashCode = hash(key1, key2, key3); - AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = - decorated().data[decorated().hashIndex(hashCode, decorated().data.length)]; + AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decoratedHashEntry(hashCode); while (entry != null) { if (entry.hashCode == hashCode && isEqualKey(entry, key1, key2, key3)) { return entry.getValue(); @@ -301,8 +303,7 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K */ public V get(final Object key1, final Object key2, final Object key3, final Object key4) { final int hashCode = hash(key1, key2, key3, key4); - AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = - decorated().data[decorated().hashIndex(hashCode, decorated().data.length)]; + AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decoratedHashEntry(hashCode); while (entry != null) { if (entry.hashCode == hashCode && isEqualKey(entry, key1, key2, key3, key4)) { return entry.getValue(); @@ -324,8 +325,7 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K */ public V get(final Object key1, final Object key2, final Object key3, final Object key4, final Object key5) { final int hashCode = hash(key1, key2, key3, key4, key5); - AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = - decorated().data[decorated().hashIndex(hashCode, decorated().data.length)]; + AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decoratedHashEntry(hashCode); while (entry != null) { if (entry.hashCode == hashCode && isEqualKey(entry, key1, key2, key3, key4, key5)) { return entry.getValue(); @@ -545,7 +545,7 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K */ public V put(final K key1, final K key2, final K key3, final K key4, final K key5, final V value) { final int hashCode = hash(key1, key2, key3, key4, key5); - final int index = decorated().hashIndex(hashCode, decorated().data.length); + final int index = decoratedHashIndex(hashCode); AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decorated().data[index]; while (entry != null) { if (entry.hashCode == hashCode && isEqualKey(entry, key1, key2, key3, key4, key5)) { @@ -571,7 +571,7 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K */ public V put(final K key1, final K key2, final K key3, final K key4, final V value) { final int hashCode = hash(key1, key2, key3, key4); - final int index = decorated().hashIndex(hashCode, decorated().data.length); + final int index = decoratedHashIndex(hashCode); AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decorated().data[index]; while (entry != null) { if (entry.hashCode == hashCode && isEqualKey(entry, key1, key2, key3, key4)) { @@ -596,7 +596,7 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K */ public V put(final K key1, final K key2, final K key3, final V value) { final int hashCode = hash(key1, key2, key3); - final int index = decorated().hashIndex(hashCode, decorated().data.length); + final int index = decoratedHashIndex(hashCode); AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decorated().data[index]; while (entry != null) { if (entry.hashCode == hashCode && isEqualKey(entry, key1, key2, key3)) { @@ -620,7 +620,7 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K */ public V put(final K key1, final K key2, final V value) { final int hashCode = hash(key1, key2); - final int index = decorated().hashIndex(hashCode, decorated().data.length); + final int index = decoratedHashIndex(hashCode); AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decorated().data[index]; while (entry != null) { if (entry.hashCode == hashCode && isEqualKey(entry, key1, key2)) { @@ -797,7 +797,7 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K */ public V removeMultiKey(final Object key1, final Object key2) { final int hashCode = hash(key1, key2); - final int index = decorated().hashIndex(hashCode, decorated().data.length); + final int index = decoratedHashIndex(hashCode); AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decorated().data[index]; AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> previous = null; while (entry != null) { @@ -823,7 +823,7 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K */ public V removeMultiKey(final Object key1, final Object key2, final Object key3) { final int hashCode = hash(key1, key2, key3); - final int index = decorated().hashIndex(hashCode, decorated().data.length); + final int index = decoratedHashIndex(hashCode); AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decorated().data[index]; AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> previous = null; while (entry != null) { @@ -850,7 +850,7 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K */ public V removeMultiKey(final Object key1, final Object key2, final Object key3, final Object key4) { final int hashCode = hash(key1, key2, key3, key4); - final int index = decorated().hashIndex(hashCode, decorated().data.length); + final int index = decoratedHashIndex(hashCode); AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decorated().data[index]; AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> previous = null; while (entry != null) { @@ -879,7 +879,7 @@ public class MultiKeyMap<K, V> extends AbstractMapDecorator<MultiKey<? extends K public V removeMultiKey(final Object key1, final Object key2, final Object key3, final Object key4, final Object key5) { final int hashCode = hash(key1, key2, key3, key4, key5); - final int index = decorated().hashIndex(hashCode, decorated().data.length); + final int index = decoratedHashIndex(hashCode); AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> entry = decorated().data[index]; AbstractHashedMap.HashEntry<MultiKey<? extends K>, V> previous = null; while (entry != null) {
