Package io.usethesource.capsule.core
Class PersistentTrieMap.BitmapIndexedMapNode<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.CompactMixedMapNode<K,V>
io.usethesource.capsule.core.PersistentTrieMap.BitmapIndexedMapNode<K,V>
- All Implemented Interfaces:
MapNode<K,
,V, PersistentTrieMap.AbstractMapNode<K, V>> Node
,Serializable
- Enclosing class:
PersistentTrieMap<K,
V>
private static final class PersistentTrieMap.BitmapIndexedMapNode<K,V>
extends PersistentTrieMap.CompactMixedMapNode<K,V>
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final AtomicReference
<Thread> (package private) final Object[]
Fields 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
ConstructorsModifierConstructorDescriptionprivate
BitmapIndexedMapNode
(AtomicReference<Thread> mutator, int nodeMap, int dataMap, Object[] nodes) -
Method Summary
Modifier and TypeMethodDescription(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) private final boolean
deepContentEquality
(Object[] a1, Object[] a2, int splitAt, int length, EqualityComparator<Object> cmp) boolean
boolean
equivalent
(Object other, EqualityComparator<Object> cmp) (package private) K
getKey
(int index) getKeyValueEntry
(int index) (package private) PersistentTrieMap.CompactMapNode
<K, V> 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
byte
Abstract predicate over a node's size.(package private) int
Methods inherited from class io.usethesource.capsule.core.PersistentTrieMap.CompactMixedMapNode
dataMap, nodeMap
Methods inherited from class io.usethesource.capsule.core.PersistentTrieMap.CompactMapNode
bitpos, containsKey, dataIndex, findByKey, index, index, mask, mergeTwoKeyValPairs, nodeAt, nodeIndex, nodeInvariant, nodeOf, nodeOf, nodeOf, recoverMask, removed, toString, updated
Methods inherited from class io.usethesource.capsule.core.PersistentTrieMap.AbstractMapNode
arity, dataArray, isAllowedToEdit, nodeIterator, size
-
Field Details
-
mutator
-
nodes
-
-
Constructor Details
-
BitmapIndexedMapNode
private BitmapIndexedMapNode(AtomicReference<Thread> mutator, int nodeMap, int dataMap, Object[] nodes)
-
-
Method Details
-
nodeArray
-
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>
-
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>
-
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
-
deepContentEquality
private final boolean deepContentEquality(Object[] a1, Object[] a2, int splitAt, int length, EqualityComparator<Object> cmp) -
sizePredicate
public byte sizePredicate()Description copied from interface:Node
- Returns:
- size predicate
-
copyAndSetValue
PersistentTrieMap.CompactMapNode<K,V> copyAndSetValue(AtomicReference<Thread> mutator, int bitpos, V val) - Specified by:
copyAndSetValue
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>
-
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>
-
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>
-