Package org.roaringbitmap.art
Class AbstractShuttle
- java.lang.Object
-
- org.roaringbitmap.art.AbstractShuttle
-
- All Implemented Interfaces:
Shuttle
- Direct Known Subclasses:
BackwardShuttle,ForwardShuttle
public abstract class AbstractShuttle extends java.lang.Object implements Shuttle
visit the art tree's space through a stack which records the deep first visiting paths.
-
-
Field Summary
Fields Modifier and Type Field Description protected Artartprotected Containerscontainersprotected intdepthprotected booleanhasRunprotected static intMAX_DEPTHprotected org.roaringbitmap.art.AbstractShuttle.NodeEntry[]stack
-
Constructor Summary
Constructors Constructor Description AbstractShuttle(Art art, Containers containers)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract intboundaryNodePosition(Node node, boolean inRunDirection)protected abstract booleancurrentBeforeHigh(byte[] current, byte[] high)LeafNodegetCurrentLeafNode()get the current LeafNode after calling the method moveToNextLeafvoidinitShuttle()should be called firstly before calling other methodsvoidinitShuttleFrom(long key)Call this instead of initShuttle, if the iterator should start from a bound (upper/lower depending on direction)booleanmoveToNextLeaf()protected abstract booleanprefixMismatchIsInRunDirection(byte nodeValue, byte highValue)voidremove()remove the current visiting LeafNode and its corresponding value containerprotected abstract intsearchMissNextPosition(org.roaringbitmap.art.SearchResult result)protected abstract intvisitedNodeNextPosition(Node node, int pos)
-
-
-
Field Detail
-
MAX_DEPTH
protected static final int MAX_DEPTH
- See Also:
- Constant Field Values
-
stack
protected org.roaringbitmap.art.AbstractShuttle.NodeEntry[] stack
-
depth
protected int depth
-
hasRun
protected boolean hasRun
-
art
protected Art art
-
containers
protected Containers containers
-
-
Constructor Detail
-
AbstractShuttle
public AbstractShuttle(Art art, Containers containers)
-
-
Method Detail
-
initShuttle
public void initShuttle()
Description copied from interface:Shuttleshould be called firstly before calling other methods- Specified by:
initShuttlein interfaceShuttle
-
initShuttleFrom
public void initShuttleFrom(long key)
Description copied from interface:ShuttleCall this instead of initShuttle, if the iterator should start from a bound (upper/lower depending on direction)- Specified by:
initShuttleFromin interfaceShuttle- Parameters:
key- the upper/lower bound to start from
-
currentBeforeHigh
protected abstract boolean currentBeforeHigh(byte[] current, byte[] high)
-
moveToNextLeaf
public boolean moveToNextLeaf()
- Specified by:
moveToNextLeafin interfaceShuttle- Returns:
- true: has a LeafNode, false: has no LeafNode
-
visitedNodeNextPosition
protected abstract int visitedNodeNextPosition(Node node, int pos)
-
getCurrentLeafNode
public LeafNode getCurrentLeafNode()
Description copied from interface:Shuttleget the current LeafNode after calling the method moveToNextLeaf- Specified by:
getCurrentLeafNodein interfaceShuttle- Returns:
- the current visiting LeafNode
-
remove
public void remove()
Description copied from interface:Shuttleremove the current visiting LeafNode and its corresponding value container
-
boundaryNodePosition
protected abstract int boundaryNodePosition(Node node, boolean inRunDirection)
-
prefixMismatchIsInRunDirection
protected abstract boolean prefixMismatchIsInRunDirection(byte nodeValue, byte highValue)
-
searchMissNextPosition
protected abstract int searchMissNextPosition(org.roaringbitmap.art.SearchResult result)
-
-