|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.lucene.util.fst.FST<T>
public final class FST<T>
Represents an finite state machine (FST), using a compact byte[] format.
The format is similar to what's used by Morfologik (http://sourceforge.net/projects/morfologik).
See the package
documentation
for some simple examples.
NOTE: the FST cannot be larger than ~2.1 GB because it uses int to address the byte[].
Nested Class Summary | |
---|---|
static class |
FST.Arc<T>
Represents a single arc. |
static class |
FST.BytesReader
Reads the bytes from this FST. |
static class |
FST.INPUT_TYPE
Specifies allowed range of each int input label for this FST. |
Field Summary | |
---|---|
int |
arcCount
|
int |
arcWithOutputCount
|
static int |
END_LABEL
If arc has this label then that arc is final/accepted |
FST.INPUT_TYPE |
inputType
|
int |
nodeCount
|
Outputs<T> |
outputs
|
Constructor Summary | |
---|---|
FST(DataInput in,
Outputs<T> outputs)
Load a previously saved FST. |
Method Summary | ||
---|---|---|
FST.Arc<T> |
findTargetArc(int labelToMatch,
FST.Arc<T> follow,
FST.Arc<T> arc,
FST.BytesReader in)
Finds an arc leaving the incoming arc, replacing the arc in place. |
|
int |
getArcCount()
|
|
int |
getArcWithOutputCount()
|
|
FST.BytesReader |
getBytesReader()
Returns a FST.BytesReader for this FST, positioned at
position 0. |
|
FST.BytesReader |
getBytesReader(int pos)
Returns a FST.BytesReader for this FST, positioned at
the provided position. |
|
T |
getEmptyOutput()
|
|
FST.Arc<T> |
getFirstArc(FST.Arc<T> arc)
Fills virtual 'start' arc, ie, an empty incoming arc to the FST's start node |
|
FST.INPUT_TYPE |
getInputType()
|
|
int |
getNodeCount()
|
|
static
|
read(File file,
Outputs<T> outputs)
Reads an automaton from a file. |
|
FST.Arc<T> |
readFirstRealTargetArc(int node,
FST.Arc<T> arc,
FST.BytesReader in)
|
|
FST.Arc<T> |
readFirstTargetArc(FST.Arc<T> follow,
FST.Arc<T> arc,
FST.BytesReader in)
Follow the follow arc and read the first arc of its target;
this changes the provided arc (2nd arg) in-place and returns
it. |
|
FST.Arc<T> |
readLastTargetArc(FST.Arc<T> follow,
FST.Arc<T> arc,
FST.BytesReader in)
Follows the follow arc and reads the last
arc of its target; this changes the provided
arc (2nd arg) in-place and returns it. |
|
FST.Arc<T> |
readNextArc(FST.Arc<T> arc,
FST.BytesReader in)
In-place read; returns the arc. |
|
int |
readNextArcLabel(FST.Arc<T> arc,
FST.BytesReader in)
Peeks at next arc's label; does not alter arc. |
|
FST.Arc<T> |
readNextRealArc(FST.Arc<T> arc,
FST.BytesReader in)
Never returns null, but you should never call this if arc.isLast() is true. |
|
void |
save(DataOutput out)
|
|
void |
save(File file)
Writes an automaton to a file. |
|
int |
sizeInBytes()
Returns bytes used to represent the FST |
|
static
|
targetHasArcs(FST.Arc<T> arc)
returns true if the node at this address has any outgoing arcs |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public final FST.INPUT_TYPE inputType
public final Outputs<T> outputs
public int nodeCount
public int arcCount
public int arcWithOutputCount
public static final int END_LABEL
Constructor Detail |
---|
public FST(DataInput in, Outputs<T> outputs) throws IOException
IOException
Method Detail |
---|
public FST.INPUT_TYPE getInputType()
public int sizeInBytes()
public T getEmptyOutput()
public void save(DataOutput out) throws IOException
IOException
public void save(File file) throws IOException
IOException
public static <T> FST<T> read(File file, Outputs<T> outputs) throws IOException
IOException
public static <T> boolean targetHasArcs(FST.Arc<T> arc)
public FST.Arc<T> getFirstArc(FST.Arc<T> arc)
public FST.Arc<T> readLastTargetArc(FST.Arc<T> follow, FST.Arc<T> arc, FST.BytesReader in) throws IOException
follow
arc and reads the last
arc of its target; this changes the provided
arc
(2nd arg) in-place and returns it.
arc
).
IOException
public FST.Arc<T> readFirstTargetArc(FST.Arc<T> follow, FST.Arc<T> arc, FST.BytesReader in) throws IOException
follow
arc and read the first arc of its target;
this changes the provided arc
(2nd arg) in-place and returns
it.
arc
).
IOException
public FST.Arc<T> readFirstRealTargetArc(int node, FST.Arc<T> arc, FST.BytesReader in) throws IOException
IOException
public FST.Arc<T> readNextArc(FST.Arc<T> arc, FST.BytesReader in) throws IOException
IOException
public int readNextArcLabel(FST.Arc<T> arc, FST.BytesReader in) throws IOException
IOException
public FST.Arc<T> readNextRealArc(FST.Arc<T> arc, FST.BytesReader in) throws IOException
IOException
public FST.Arc<T> findTargetArc(int labelToMatch, FST.Arc<T> follow, FST.Arc<T> arc, FST.BytesReader in) throws IOException
IOException
public int getNodeCount()
public int getArcCount()
public int getArcWithOutputCount()
public FST.BytesReader getBytesReader()
FST.BytesReader
for this FST, positioned at
position 0.
public FST.BytesReader getBytesReader(int pos)
FST.BytesReader
for this FST, positioned at
the provided position.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |