Package org.apache.lucene.util.fst
Class UpToTwoPositiveIntOutputs
- java.lang.Object
-
- org.apache.lucene.util.fst.Outputs<Object>
-
- org.apache.lucene.util.fst.UpToTwoPositiveIntOutputs
-
public final class UpToTwoPositiveIntOutputs extends Outputs<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 Object
add(Object _prefix, Object _output)
Eg add("foo", "bar") -> "foobar"Long
common(Object _output1, Object _output2)
Eg common("foobar", "food") -> "foo"Long
get(long v)
UpToTwoPositiveIntOutputs.TwoLongs
get(long first, long second)
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)
Object
merge(Object first, Object second)
String
outputToString(Object output)
Object
read(DataInput in)
Decode an output value previously written withOutputs.write(Object, DataOutput)
.Long
subtract(Object _output, Object _inc)
Eg subtract("foobar", "foo") -> "bar"void
write(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 Long get(long v)
-
get
public UpToTwoPositiveIntOutputs.TwoLongs get(long first, long second)
-
common
public Long common(Object _output1, Object _output2)
Description copied from class:Outputs
Eg common("foobar", "food") -> "foo"
-
subtract
public Long subtract(Object _output, Object _inc)
Description copied from class:Outputs
Eg subtract("foobar", "foo") -> "bar"
-
add
public Object add(Object _prefix, Object _output)
Description copied from class:Outputs
Eg add("foo", "bar") -> "foobar"
-
write
public void write(Object _output, DataOutput out) throws IOException
Description copied from class:Outputs
Encode an output value into aDataOutput
.- Specified by:
write
in classOutputs<Object>
- Throws:
IOException
-
read
public Object read(DataInput in) throws IOException
Description copied from class:Outputs
Decode an output value previously written withOutputs.write(Object, DataOutput)
.- Specified by:
read
in classOutputs<Object>
- Throws:
IOException
-
getNoOutput
public 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<Object>
-
outputToString
public String outputToString(Object output)
- Specified by:
outputToString
in classOutputs<Object>
-
-