org.apache.lucene.util.fst
Class ListOfOutputs<T>
java.lang.Object
org.apache.lucene.util.fst.Outputs<Object>
org.apache.lucene.util.fst.ListOfOutputs<T>
public final class ListOfOutputs<T>
- extends Outputs<Object>
Wraps another Outputs implementation and encodes one or
more of its output values. You can use this when a single
input may need to map to more than one output,
maintaining order: pass the same input with a different
output by calling Builder.add(IntsRef,Object)
multiple
times. The builder will then combine the outputs using
the Outputs.merge(Object,Object)
method.
The resulting FST may not be minimal when an input has
more than one output, as this requires pushing all
multi-output values to a final state.
NOTE: the only way to create multiple outputs is to
add the same input to the FST multiple times in a row. This is
how the FST maps a single input to multiple outputs (e.g. you
cannot pass a List<Object> to Builder.add(org.apache.lucene.util.IntsRef, T)
). If
your outputs are longs, and you need at most 2, then use
UpToTwoPositiveIntOutputs
instead since it stores
the outputs more compactly (by stealing a bit from each
long value).
NOTE: this cannot wrap itself (ie you cannot make an
FST with List<List<Object>> outputs using this).
- WARNING: This API is experimental and might change in incompatible ways in the next release.
ListOfOutputs
public ListOfOutputs(Outputs<T> outputs)
common
public Object common(Object output1,
Object output2)
- Specified by:
common
in class Outputs<Object>
subtract
public Object subtract(Object object,
Object inc)
- Specified by:
subtract
in class Outputs<Object>
add
public Object add(Object prefix,
Object output)
- Specified by:
add
in class Outputs<Object>
write
public void write(Object output,
DataOutput out)
throws IOException
- Specified by:
write
in class Outputs<Object>
- Throws:
IOException
writeFinalOutput
public void writeFinalOutput(Object output,
DataOutput out)
throws IOException
- Overrides:
writeFinalOutput
in class Outputs<Object>
- Throws:
IOException
read
public Object read(DataInput in)
throws IOException
- Specified by:
read
in class Outputs<Object>
- Throws:
IOException
readFinalOutput
public Object readFinalOutput(DataInput in)
throws IOException
- Overrides:
readFinalOutput
in class Outputs<Object>
- Throws:
IOException
getNoOutput
public Object getNoOutput()
- Specified by:
getNoOutput
in class Outputs<Object>
outputToString
public String outputToString(Object output)
- Specified by:
outputToString
in class Outputs<Object>
merge
public Object merge(Object first,
Object second)
- Overrides:
merge
in class Outputs<Object>
toString
public String toString()
- Overrides:
toString
in class Object
asList
public List<T> asList(Object output)
Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.