Package io.usethesource.capsule.core
Class PersistentTrieSet.BitmapIndexedSetNode<K>
- java.lang.Object
-
- io.usethesource.capsule.core.PersistentTrieSet.AbstractSetNode<K>
-
- io.usethesource.capsule.core.PersistentTrieSet.CompactSetNode<K>
-
- io.usethesource.capsule.core.PersistentTrieSet.CompactMixedSetNode<K>
-
- io.usethesource.capsule.core.PersistentTrieSet.BitmapIndexedSetNode<K>
-
- All Implemented Interfaces:
Node
,SetNode<K,PersistentTrieSet.AbstractSetNode<K>>
,java.io.Serializable
,java.lang.Iterable<K>
- Enclosing class:
- PersistentTrieSet<K>
private static final class PersistentTrieSet.BitmapIndexedSetNode<K> extends PersistentTrieSet.CompactMixedSetNode<K>
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.concurrent.atomic.AtomicReference<java.lang.Thread>
mutator
(package private) java.lang.Object[]
nodes
-
Fields inherited from class io.usethesource.capsule.core.PersistentTrieSet.CompactSetNode
BIT_PARTITION_MASK, BIT_PARTITION_SIZE, HASH_CODE_LENGTH
-
Fields inherited from class io.usethesource.capsule.core.PersistentTrieSet.AbstractSetNode
TUPLE_LENGTH
-
Fields inherited from interface io.usethesource.capsule.core.trie.Node
SIZE_EMPTY, SIZE_MORE_THAN_ONE, SIZE_ONE
-
-
Constructor Summary
Constructors Modifier Constructor Description private
BitmapIndexedSetNode(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> mutator, int nodeMap, int dataMap, java.lang.Object[] nodes)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) PersistentTrieSet.CompactSetNode<K>
copyAndInsertValue(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> mutator, int bitpos, K key)
(package private) PersistentTrieSet.CompactSetNode<K>
copyAndMigrateFromInlineToNode(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> mutator, int bitpos, PersistentTrieSet.AbstractSetNode<K> node)
(package private) PersistentTrieSet.CompactSetNode<K>
copyAndMigrateFromNodeToInline(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> mutator, int bitpos, PersistentTrieSet.AbstractSetNode<K> node)
(package private) PersistentTrieSet.CompactSetNode<K>
copyAndRemoveValue(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> mutator, int bitpos)
(package private) PersistentTrieSet.CompactSetNode<K>
copyAndSetNode(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> mutator, int bitpos, PersistentTrieSet.AbstractSetNode<K> newNode)
private boolean
deepContentEquality(java.lang.Object[] a1, java.lang.Object[] a2, int splitAt, int length, EqualityComparator<java.lang.Object> cmp)
boolean
equals(java.lang.Object other)
boolean
equivalent(java.lang.Object other, EqualityComparator<java.lang.Object> cmp)
K
getKey(int index)
int
getKeyHash(int index)
(package private) PersistentTrieSet.CompactSetNode<K>
getNode(int index)
(package private) java.lang.Object
getSlot(int index)
int
hashCode()
(package private) boolean
hasNodes()
boolean
hasPayload()
(package private) boolean
hasSlots()
(package private) int
localPayloadHashCode()
(package private) int
nodeArity()
ArrayView<PersistentTrieSet.AbstractSetNode<K>>
nodeArray()
int
payloadArity()
int
recursivePayloadHashCode()
int
size()
byte
sizePredicate()
Abstract predicate over a node's size.(package private) int
slotArity()
-
Methods inherited from class io.usethesource.capsule.core.PersistentTrieSet.CompactMixedSetNode
dataMap, nodeMap
-
Methods inherited from class io.usethesource.capsule.core.PersistentTrieSet.CompactSetNode
bitpos, contains, dataIndex, findByKey, index, index, mask, mergeTwoKeyValPairs, nodeAt, nodeIndex, nodeInvariant, nodeOf, nodeOf, nodeOf, nodeOf, nodeOf, recoverMask, removed, toString, updated
-
Methods inherited from class io.usethesource.capsule.core.PersistentTrieSet.AbstractSetNode
arity, dataArray, isAllowedToEdit, iterator, nodeIterator, spliterator, stream
-
-
-
-
Method Detail
-
nodeArray
public ArrayView<PersistentTrieSet.AbstractSetNode<K>> nodeArray()
- Specified by:
nodeArray
in interfaceNode
- Specified by:
nodeArray
in classPersistentTrieSet.AbstractSetNode<K>
-
getKey
public K getKey(int index)
-
getKeyHash
public int getKeyHash(int index)
-
getNode
PersistentTrieSet.CompactSetNode<K> getNode(int index)
- Specified by:
getNode
in classPersistentTrieSet.CompactSetNode<K>
-
hasPayload
public boolean hasPayload()
-
payloadArity
public int payloadArity()
-
hasNodes
boolean hasNodes()
- Specified by:
hasNodes
in classPersistentTrieSet.AbstractSetNode<K>
-
nodeArity
int nodeArity()
- Specified by:
nodeArity
in classPersistentTrieSet.AbstractSetNode<K>
-
getSlot
java.lang.Object getSlot(int index)
- Specified by:
getSlot
in classPersistentTrieSet.AbstractSetNode<K>
-
hasSlots
boolean hasSlots()
- Specified by:
hasSlots
in classPersistentTrieSet.AbstractSetNode<K>
-
slotArity
int slotArity()
- Specified by:
slotArity
in classPersistentTrieSet.AbstractSetNode<K>
-
localPayloadHashCode
int localPayloadHashCode()
- Specified by:
localPayloadHashCode
in classPersistentTrieSet.AbstractSetNode<K>
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equals
in classjava.lang.Object
-
equivalent
public boolean equivalent(java.lang.Object other, EqualityComparator<java.lang.Object> cmp)
-
deepContentEquality
private final boolean deepContentEquality(java.lang.Object[] a1, java.lang.Object[] a2, int splitAt, int length, EqualityComparator<java.lang.Object> cmp)
-
sizePredicate
public byte sizePredicate()
Description copied from interface:Node
- Returns:
- size predicate
-
size
public final int size()
- Specified by:
size
in interfaceSetNode<K,PersistentTrieSet.AbstractSetNode<K>>
- Overrides:
size
in classPersistentTrieSet.AbstractSetNode<K>
-
recursivePayloadHashCode
public int recursivePayloadHashCode()
- Specified by:
recursivePayloadHashCode
in interfaceSetNode<K,PersistentTrieSet.AbstractSetNode<K>>
- Overrides:
recursivePayloadHashCode
in classPersistentTrieSet.AbstractSetNode<K>
-
copyAndSetNode
PersistentTrieSet.CompactSetNode<K> copyAndSetNode(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> mutator, int bitpos, PersistentTrieSet.AbstractSetNode<K> newNode)
- Specified by:
copyAndSetNode
in classPersistentTrieSet.CompactSetNode<K>
-
copyAndInsertValue
PersistentTrieSet.CompactSetNode<K> copyAndInsertValue(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> mutator, int bitpos, K key)
- Specified by:
copyAndInsertValue
in classPersistentTrieSet.CompactSetNode<K>
-
copyAndRemoveValue
PersistentTrieSet.CompactSetNode<K> copyAndRemoveValue(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> mutator, int bitpos)
- Specified by:
copyAndRemoveValue
in classPersistentTrieSet.CompactSetNode<K>
-
copyAndMigrateFromInlineToNode
PersistentTrieSet.CompactSetNode<K> copyAndMigrateFromInlineToNode(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> mutator, int bitpos, PersistentTrieSet.AbstractSetNode<K> node)
- Specified by:
copyAndMigrateFromInlineToNode
in classPersistentTrieSet.CompactSetNode<K>
-
copyAndMigrateFromNodeToInline
PersistentTrieSet.CompactSetNode<K> copyAndMigrateFromNodeToInline(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> mutator, int bitpos, PersistentTrieSet.AbstractSetNode<K> node)
- Specified by:
copyAndMigrateFromNodeToInline
in classPersistentTrieSet.CompactSetNode<K>
-
-