Package org.apache.lucene.util.fst
Class UpToTwoPositiveIntOutputs
- java.lang.Object
-
- org.apache.lucene.util.fst.Outputs<java.lang.Object>
-
- org.apache.lucene.util.fst.UpToTwoPositiveIntOutputs
-
public final class UpToTwoPositiveIntOutputs extends Outputs<java.lang.Object>
An FSTOutputs
implementation where each output is one or two non-negative long values. If it's a single output, Long is returned; else, TwoLongs. Order is preserved in the TwoLongs case, ie .first is the first input/output added to Builder, and .second is the second. You cannot store 0 output with this (that's reserved to mean "no output")!NOTE: the only way to create a TwoLongs output is to add the same input to the FST twice in a row. This is how the FST maps a single input to two outputs (e.g. you cannot pass a TwoLongs to
Builder.add(org.apache.lucene.util.IntsRef, T)
. If you need more than two then useListOfOutputs
, but if you only have at most 2 then this implementation will require fewer bytes as it steals one bit from each long value.NOTE: the resulting FST is not guaranteed to be minimal! See
Builder
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
UpToTwoPositiveIntOutputs.TwoLongs
Holds two long outputs.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
add(java.lang.Object _prefix, java.lang.Object _output)
Eg add("foo", "bar") -> "foobar"java.lang.Long
common(java.lang.Object _output1, java.lang.Object _output2)
Eg common("foobar", "food") -> "foo"java.lang.Long
get(long v)
UpToTwoPositiveIntOutputs.TwoLongs
get(long first, long second)
java.lang.Object
getNoOutput()
NOTE: this output is compared with == so you must ensure that all methods return the single object if it's really no outputstatic UpToTwoPositiveIntOutputs
getSingleton(boolean doShare)
java.lang.Object
merge(java.lang.Object first, java.lang.Object second)
java.lang.String
outputToString(java.lang.Object output)
java.lang.Object
read(DataInput in)
Decode an output value previously written withOutputs.write(Object, DataOutput)
.java.lang.Long
subtract(java.lang.Object _output, java.lang.Object _inc)
Eg subtract("foobar", "foo") -> "bar"void
write(java.lang.Object _output, DataOutput out)
Encode an output value into aDataOutput
.-
Methods inherited from class org.apache.lucene.util.fst.Outputs
readFinalOutput, writeFinalOutput
-
-
-
-
Method Detail
-
getSingleton
public static UpToTwoPositiveIntOutputs getSingleton(boolean doShare)
-
get
public java.lang.Long get(long v)
-
get
public UpToTwoPositiveIntOutputs.TwoLongs get(long first, long second)
-
common
public java.lang.Long common(java.lang.Object _output1, java.lang.Object _output2)
Description copied from class:Outputs
Eg common("foobar", "food") -> "foo"
-
subtract
public java.lang.Long subtract(java.lang.Object _output, java.lang.Object _inc)
Description copied from class:Outputs
Eg subtract("foobar", "foo") -> "bar"
-
add
public java.lang.Object add(java.lang.Object _prefix, java.lang.Object _output)
Description copied from class:Outputs
Eg add("foo", "bar") -> "foobar"
-
write
public void write(java.lang.Object _output, DataOutput out) throws java.io.IOException
Description copied from class:Outputs
Encode an output value into aDataOutput
.
-
read
public java.lang.Object read(DataInput in) throws java.io.IOException
Description copied from class:Outputs
Decode an output value previously written withOutputs.write(Object, DataOutput)
.
-
getNoOutput
public java.lang.Object getNoOutput()
Description copied from class:Outputs
NOTE: this output is compared with == so you must ensure that all methods return the single object if it's really no output- Specified by:
getNoOutput
in classOutputs<java.lang.Object>
-
outputToString
public java.lang.String outputToString(java.lang.Object output)
- Specified by:
outputToString
in classOutputs<java.lang.Object>
-
-