- java.lang.Object
-
- org.apache.lucene.util.fst.FST.Arc<T>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
FST.Arc.BitTable
Helper methods to read the bit-table of a direct addressing node.
-
Field Summary
Fields Modifier and Type Field Description private int
arcIdx
private long
bitTableStart
Start position in theFST.BytesReader
of the presence bits for a direct addressing node, aka the bit-tableprivate int
bytesPerArc
private int
firstLabel
First label of a direct addressing node.private byte
flags
private int
label
private long
nextArc
private T
nextFinalOutput
private byte
nodeFlags
private int
numArcs
private T
output
private long
posArcsStart
private int
presenceIndex
Index of the current label of a direct addressing node.private long
target
-
Constructor Summary
Constructors Constructor Description Arc()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
arcIdx()
Where we are in the array; only valid if bytesPerArc != 0.int
bytesPerArc()
Non-zero if this arc is part of a node with fixed length arcs, which means all arcs for the node are encoded with a fixed number of bytes so that we binary search or direct address.FST.Arc<T>
copyFrom(FST.Arc<T> other)
Returns this(package private) int
firstLabel()
First label of a direct addressing node.(package private) boolean
flag(int flag)
byte
flags()
boolean
isFinal()
boolean
isLast()
int
label()
(package private) long
nextArc()
Address (into the byte[]) of the next arc - only for list of variable length arc.T
nextFinalOutput()
byte
nodeFlags()
Node header flags.int
numArcs()
How many arcs; only valid if bytesPerArc != 0 (fixed length arcs).T
output()
long
posArcsStart()
Where the first arc in the array starts; only valid if bytesPerArc != 0long
target()
Ord/address to target node.java.lang.String
toString()
-
-
-
Field Detail
-
label
private int label
-
output
private T output
-
target
private long target
-
flags
private byte flags
-
nextFinalOutput
private T nextFinalOutput
-
nextArc
private long nextArc
-
nodeFlags
private byte nodeFlags
-
bytesPerArc
private int bytesPerArc
-
posArcsStart
private long posArcsStart
-
arcIdx
private int arcIdx
-
numArcs
private int numArcs
-
bitTableStart
private long bitTableStart
Start position in theFST.BytesReader
of the presence bits for a direct addressing node, aka the bit-table
-
firstLabel
private int firstLabel
First label of a direct addressing node.
-
presenceIndex
private int presenceIndex
Index of the current label of a direct addressing node. WhilearcIdx
is the current index in the label range,presenceIndex
is its corresponding index in the list of actually present labels. It is equal to the number of bits set before the bit atarcIdx
in the bit-table. This field is a cache to avoid to count bits set repeatedly when iterating the next arcs.
-
-
Method Detail
-
flag
boolean flag(int flag)
-
isLast
public boolean isLast()
-
isFinal
public boolean isFinal()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
label
public int label()
-
output
public T output()
-
target
public long target()
Ord/address to target node.
-
flags
public byte flags()
-
nextFinalOutput
public T nextFinalOutput()
-
nextArc
long nextArc()
Address (into the byte[]) of the next arc - only for list of variable length arc. Or ord/address to the next node if label ==FST.END_LABEL
.
-
arcIdx
public int arcIdx()
Where we are in the array; only valid if bytesPerArc != 0.
-
nodeFlags
public byte nodeFlags()
Node header flags. Only meaningful to check if the value is eitherFST.ARCS_FOR_BINARY_SEARCH
orFST.ARCS_FOR_DIRECT_ADDRESSING
orFST.ARCS_FOR_CONTINUOUS
(other value when bytesPerArc == 0).
-
posArcsStart
public long posArcsStart()
Where the first arc in the array starts; only valid if bytesPerArc != 0
-
bytesPerArc
public int bytesPerArc()
Non-zero if this arc is part of a node with fixed length arcs, which means all arcs for the node are encoded with a fixed number of bytes so that we binary search or direct address. We do when there are enough arcs leaving one node. It wastes some bytes but gives faster lookups.
-
numArcs
public int numArcs()
How many arcs; only valid if bytesPerArc != 0 (fixed length arcs). For a node designed for binary search this is the array size. For a node designed for direct addressing, this is the label range.
-
firstLabel
int firstLabel()
First label of a direct addressing node. Only valid if nodeFlags ==FST.ARCS_FOR_DIRECT_ADDRESSING
orFST.ARCS_FOR_CONTINUOUS
.
-
-