static final class PersistentHashMap.BitmapIndexedNode extends java.lang.Object implements PersistentHashMap.INode
Modifier and Type | Field and Description |
---|---|
(package private) java.lang.Object[] |
array |
(package private) int |
bitmap |
(package private) java.util.concurrent.atomic.AtomicReference<java.lang.Thread> |
edit |
(package private) static PersistentHashMap.BitmapIndexedNode |
EMPTY |
Constructor and Description |
---|
PersistentHashMap.BitmapIndexedNode(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit,
int bitmap,
java.lang.Object[] array) |
Modifier and Type | Method and Description |
---|---|
PersistentHashMap.INode |
assoc(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit,
int shift,
int hash,
java.lang.Object key,
java.lang.Object val,
Box addedLeaf) |
PersistentHashMap.INode |
assoc(int shift,
int hash,
java.lang.Object key,
java.lang.Object val,
Box addedLeaf) |
private PersistentHashMap.BitmapIndexedNode |
editAndRemovePair(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit,
int bit,
int i) |
private PersistentHashMap.BitmapIndexedNode |
editAndSet(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit,
int i,
java.lang.Object a) |
private PersistentHashMap.BitmapIndexedNode |
editAndSet(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit,
int i,
java.lang.Object a,
int j,
java.lang.Object b) |
private PersistentHashMap.BitmapIndexedNode |
ensureEditable(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit) |
IMapEntry |
find(int shift,
int hash,
java.lang.Object key) |
java.lang.Object |
find(int shift,
int hash,
java.lang.Object key,
java.lang.Object notFound) |
java.lang.Object |
fold(IFn combinef,
IFn reducef,
IFn fjtask,
IFn fjfork,
IFn fjjoin) |
(package private) int |
index(int bit) |
java.lang.Object |
kvreduce(IFn f,
java.lang.Object init) |
ISeq |
nodeSeq() |
PersistentHashMap.INode |
without(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit,
int shift,
int hash,
java.lang.Object key,
Box removedLeaf) |
PersistentHashMap.INode |
without(int shift,
int hash,
java.lang.Object key) |
static final PersistentHashMap.BitmapIndexedNode EMPTY
int bitmap
java.lang.Object[] array
final java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit
PersistentHashMap.BitmapIndexedNode(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit, int bitmap, java.lang.Object[] array)
final int index(int bit)
public PersistentHashMap.INode assoc(int shift, int hash, java.lang.Object key, java.lang.Object val, Box addedLeaf)
assoc
in interface PersistentHashMap.INode
public PersistentHashMap.INode without(int shift, int hash, java.lang.Object key)
without
in interface PersistentHashMap.INode
public IMapEntry find(int shift, int hash, java.lang.Object key)
find
in interface PersistentHashMap.INode
public java.lang.Object find(int shift, int hash, java.lang.Object key, java.lang.Object notFound)
find
in interface PersistentHashMap.INode
public ISeq nodeSeq()
nodeSeq
in interface PersistentHashMap.INode
public java.lang.Object kvreduce(IFn f, java.lang.Object init)
kvreduce
in interface PersistentHashMap.INode
public java.lang.Object fold(IFn combinef, IFn reducef, IFn fjtask, IFn fjfork, IFn fjjoin)
fold
in interface PersistentHashMap.INode
private PersistentHashMap.BitmapIndexedNode ensureEditable(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit)
private PersistentHashMap.BitmapIndexedNode editAndSet(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit, int i, java.lang.Object a)
private PersistentHashMap.BitmapIndexedNode editAndSet(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit, int i, java.lang.Object a, int j, java.lang.Object b)
private PersistentHashMap.BitmapIndexedNode editAndRemovePair(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit, int bit, int i)
public PersistentHashMap.INode assoc(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit, int shift, int hash, java.lang.Object key, java.lang.Object val, Box addedLeaf)
assoc
in interface PersistentHashMap.INode
public PersistentHashMap.INode without(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit, int shift, int hash, java.lang.Object key, Box removedLeaf)
without
in interface PersistentHashMap.INode