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 class
FST.Arc.BitTable
Reusable table of bits using an array of long internally.
-
Field Summary
Fields Modifier and Type Field Description private int
arcIdx
private FST.Arc.BitTable
bitTable
private int
bytesPerArc
private int
firstLabel
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 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.(package private) FST.Arc.BitTable
bitTable()
Table of bits of a direct addressing node.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()
(package private) FST.Arc.BitTable
getOrCreateBitTable()
The table of bits of a direct addressing node created lazily.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
-
arcIdx
private int arcIdx
-
nodeFlags
private byte nodeFlags
-
posArcsStart
private long posArcsStart
-
bytesPerArc
private int bytesPerArc
-
numArcs
private int numArcs
-
bitTable
private FST.Arc.BitTable bitTable
-
firstLabel
private int firstLabel
-
-
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
(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.
-
bitTable
FST.Arc.BitTable bitTable()
Table of bits of a direct addressing node. Only valid if nodeFlags ==FST.ARCS_FOR_DIRECT_ADDRESSING
; may be null otherwise.
-
getOrCreateBitTable
FST.Arc.BitTable getOrCreateBitTable()
The table of bits of a direct addressing node created lazily.
-
firstLabel
int firstLabel()
First label of a direct addressing node. Only valid if nodeFlags ==FST.ARCS_FOR_DIRECT_ADDRESSING
.
-
-