Package io.usethesource.capsule.core
Class PersistentTrieMap.HashCollisionMapNode<K,V>
java.lang.Object
io.usethesource.capsule.core.PersistentTrieMap.AbstractMapNode<K,V>
io.usethesource.capsule.core.PersistentTrieMap.CompactMapNode<K,V>
io.usethesource.capsule.core.PersistentTrieMap.HashCollisionMapNode<K,V>
- All Implemented Interfaces:
MapNode<K,
,V, PersistentTrieMap.AbstractMapNode<K, V>> Node
,Serializable
- Enclosing class:
PersistentTrieMap<K,
V>
private static final class PersistentTrieMap.HashCollisionMapNode<K,V>
extends PersistentTrieMap.CompactMapNode<K,V>
-
Field Summary
FieldsFields inherited from class io.usethesource.capsule.core.PersistentTrieMap.CompactMapNode
BIT_PARTITION_MASK, BIT_PARTITION_SIZE, HASH_CODE_LENGTH
Fields inherited from class io.usethesource.capsule.core.PersistentTrieMap.AbstractMapNode
TUPLE_LENGTH
Fields inherited from interface io.usethesource.capsule.core.trie.Node
SIZE_EMPTY, SIZE_MORE_THAN_ONE, SIZE_ONE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) int
arity()
The arity of this trie node (i.e.boolean
containsKey
(K key, int keyHash, int shift, EqualityComparator<Object> cmp) (package private) PersistentTrieMap.CompactMapNode
<K, V> copyAndInsertValue
(AtomicReference<Thread> mutator, int bitpos, K key, V val) (package private) PersistentTrieMap.CompactMapNode
<K, V> copyAndMigrateFromInlineToNode
(AtomicReference<Thread> mutator, int bitpos, PersistentTrieMap.AbstractMapNode<K, V> node) (package private) PersistentTrieMap.CompactMapNode
<K, V> copyAndMigrateFromNodeToInline
(AtomicReference<Thread> mutator, int bitpos, PersistentTrieMap.AbstractMapNode<K, V> node) (package private) PersistentTrieMap.CompactMapNode
<K, V> copyAndRemoveValue
(AtomicReference<Thread> mutator, int bitpos) (package private) PersistentTrieMap.CompactMapNode
<K, V> copyAndSetNode
(AtomicReference<Thread> mutator, int bitpos, PersistentTrieMap.AbstractMapNode<K, V> node) (package private) PersistentTrieMap.CompactMapNode
<K, V> copyAndSetValue
(AtomicReference<Thread> mutator, int bitpos, V val) (package private) int
dataMap()
boolean
boolean
equivalent
(Object other, EqualityComparator<Object> cmp) findByKey
(K key, int keyHash, int shift, EqualityComparator<Object> cmp) (package private) K
getKey
(int index) getKeyValueEntry
(int index) getNode
(int index) (package private) Object
getSlot
(int index) (package private) V
getValue
(int index) int
hashCode()
(package private) boolean
hasNodes()
(package private) boolean
(package private) boolean
hasSlots()
(package private) int
(package private) int
nodeMap()
(package private) int
removed
(AtomicReference<Thread> mutator, K key, int keyHash, int shift, MapNodeResult<K, V> details, EqualityComparator<Object> cmp) byte
Abstract predicate over a node's size.(package private) int
updated
(AtomicReference<Thread> mutator, K key, V val, int keyHash, int shift, MapNodeResult<K, V> details, EqualityComparator<Object> cmp) Methods inherited from class io.usethesource.capsule.core.PersistentTrieMap.CompactMapNode
bitpos, dataIndex, index, index, mask, mergeTwoKeyValPairs, nodeAt, nodeIndex, nodeInvariant, nodeOf, nodeOf, nodeOf, recoverMask, toString
Methods inherited from class io.usethesource.capsule.core.PersistentTrieMap.AbstractMapNode
dataArray, isAllowedToEdit, nodeIterator, size
-
Field Details
-
keys
-
vals
-
hash
private final int hash
-
-
Constructor Details
-
HashCollisionMapNode
-
-
Method Details
-
nodeArray
-
containsKey
- Specified by:
containsKey
in interfaceMapNode<K,
V, PersistentTrieMap.AbstractMapNode<K, V>> - Overrides:
containsKey
in classPersistentTrieMap.CompactMapNode<K,
V>
-
findByKey
-
updated
public PersistentTrieMap.AbstractMapNode<K,V> updated(AtomicReference<Thread> mutator, K key, V val, int keyHash, int shift, MapNodeResult<K, V> details, EqualityComparator<Object> cmp) -
removed
public PersistentTrieMap.AbstractMapNode<K,V> removed(AtomicReference<Thread> mutator, K key, int keyHash, int shift, MapNodeResult<K, V> details, EqualityComparator<Object> cmp) -
hasPayload
boolean hasPayload()- Specified by:
hasPayload
in classPersistentTrieMap.AbstractMapNode<K,
V>
-
payloadArity
int payloadArity()- Specified by:
payloadArity
in classPersistentTrieMap.AbstractMapNode<K,
V>
-
hasNodes
boolean hasNodes()- Specified by:
hasNodes
in classPersistentTrieMap.AbstractMapNode<K,
V>
-
nodeArity
int nodeArity()- Specified by:
nodeArity
in classPersistentTrieMap.AbstractMapNode<K,
V>
-
arity
int arity()Description copied from class:PersistentTrieMap.AbstractMapNode
The arity of this trie node (i.e. number of values and nodes stored on this level).- Overrides:
arity
in classPersistentTrieMap.AbstractMapNode<K,
V> - Returns:
- sum of nodes and values stored within
-
sizePredicate
public byte sizePredicate()Description copied from interface:Node
- Returns:
- size predicate
-
getKey
- Specified by:
getKey
in classPersistentTrieMap.AbstractMapNode<K,
V>
-
getValue
- Specified by:
getValue
in classPersistentTrieMap.AbstractMapNode<K,
V>
-
getKeyValueEntry
- Specified by:
getKeyValueEntry
in classPersistentTrieMap.AbstractMapNode<K,
V>
-
getNode
- Specified by:
getNode
in classPersistentTrieMap.CompactMapNode<K,
V>
-
getSlot
- Specified by:
getSlot
in classPersistentTrieMap.AbstractMapNode<K,
V>
-
hasSlots
boolean hasSlots()- Specified by:
hasSlots
in classPersistentTrieMap.AbstractMapNode<K,
V>
-
slotArity
int slotArity()- Specified by:
slotArity
in classPersistentTrieMap.AbstractMapNode<K,
V>
-
hashCode
public int hashCode() -
equals
-
equivalent
-
copyAndSetValue
PersistentTrieMap.CompactMapNode<K,V> copyAndSetValue(AtomicReference<Thread> mutator, int bitpos, V val) - Specified by:
copyAndSetValue
in classPersistentTrieMap.CompactMapNode<K,
V>
-
copyAndInsertValue
PersistentTrieMap.CompactMapNode<K,V> copyAndInsertValue(AtomicReference<Thread> mutator, int bitpos, K key, V val) - Specified by:
copyAndInsertValue
in classPersistentTrieMap.CompactMapNode<K,
V>
-
copyAndRemoveValue
PersistentTrieMap.CompactMapNode<K,V> copyAndRemoveValue(AtomicReference<Thread> mutator, int bitpos) - Specified by:
copyAndRemoveValue
in classPersistentTrieMap.CompactMapNode<K,
V>
-
copyAndSetNode
PersistentTrieMap.CompactMapNode<K,V> copyAndSetNode(AtomicReference<Thread> mutator, int bitpos, PersistentTrieMap.AbstractMapNode<K, V> node) - Specified by:
copyAndSetNode
in classPersistentTrieMap.CompactMapNode<K,
V>
-
copyAndMigrateFromInlineToNode
PersistentTrieMap.CompactMapNode<K,V> copyAndMigrateFromInlineToNode(AtomicReference<Thread> mutator, int bitpos, PersistentTrieMap.AbstractMapNode<K, V> node) - Specified by:
copyAndMigrateFromInlineToNode
in classPersistentTrieMap.CompactMapNode<K,
V>
-
copyAndMigrateFromNodeToInline
PersistentTrieMap.CompactMapNode<K,V> copyAndMigrateFromNodeToInline(AtomicReference<Thread> mutator, int bitpos, PersistentTrieMap.AbstractMapNode<K, V> node) - Specified by:
copyAndMigrateFromNodeToInline
in classPersistentTrieMap.CompactMapNode<K,
V>
-
nodeMap
int nodeMap()- Specified by:
nodeMap
in classPersistentTrieMap.CompactMapNode<K,
V>
-
dataMap
int dataMap()- Specified by:
dataMap
in classPersistentTrieMap.CompactMapNode<K,
V>
-