Package org.apache.lucene.util.fst
Class FST.Arc<T>
- java.lang.Object
-
- org.apache.lucene.util.fst.FST.Arc<T>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classFST.Arc.BitTableHelper methods to read the bit-table of a direct addressing node.
-
Field Summary
Fields Modifier and Type Field Description private intarcIdxprivate longbitTableStartStart position in theFST.BytesReaderof the presence bits for a direct addressing node, aka the bit-tableprivate intbytesPerArcprivate intfirstLabelFirst label of a direct addressing node.private byteflagsprivate intlabelprivate longnextArcprivate TnextFinalOutputprivate bytenodeFlagsprivate intnumArcsprivate Toutputprivate longposArcsStartprivate intpresenceIndexIndex of the current label of a direct addressing node.private longtarget
-
Constructor Summary
Constructors Constructor Description Arc()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intarcIdx()Where we are in the array; only valid if bytesPerArc != 0.intbytesPerArc()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) intfirstLabel()First label of a direct addressing node.(package private) booleanflag(int flag)byteflags()booleanisFinal()booleanisLast()intlabel()(package private) longnextArc()Address (into the byte[]) of the next arc - only for list of variable length arc.TnextFinalOutput()bytenodeFlags()Node header flags.intnumArcs()How many arcs; only valid if bytesPerArc != 0 (fixed length arcs).Toutput()longposArcsStart()Where the first arc in the array starts; only valid if bytesPerArc != 0longtarget()Ord/address to target node.java.lang.StringtoString()
-
-
-
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.BytesReaderof 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. WhilearcIdxis the current index in the label range,presenceIndexis its corresponding index in the list of actually present labels. It is equal to the number of bits set before the bit atarcIdxin 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:
toStringin 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_SEARCHorFST.ARCS_FOR_DIRECT_ADDRESSING(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.
-
-