org.apache.lucene.util.fst
Class UpToTwoPositiveIntOutputs

java.lang.Object
  extended by org.apache.lucene.util.fst.Outputs<Object>
      extended by org.apache.lucene.util.fst.UpToTwoPositiveIntOutputs

public final class UpToTwoPositiveIntOutputs
extends Outputs<Object>

An FST Outputs 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 resulting FST is not guaranteed to be minimal! See Builder.

WARNING: This API is experimental and might change in incompatible ways in the next release.

Nested Class Summary
static class UpToTwoPositiveIntOutputs.TwoLongs
          Holds two long outputs.
 
Method Summary
 Object add(Object _prefix, Object _output)
          Eg add("foo", "bar") -> "foobar"
 Long common(Object _output1, Object _output2)
          Eg common("foo", "foobar") -> "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 output
static UpToTwoPositiveIntOutputs getSingleton(boolean doShare)
           
 Object merge(Object first, Object second)
           
 String outputToString(Object output)
           
 Object read(DataInput in)
           
 Long subtract(Object _output, Object _inc)
          Eg subtract("foobar", "foo") -> "bar"
 void write(Object _output, DataOutput out)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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("foo", "foobar") -> "foo"

Specified by:
common in class Outputs<Object>

subtract

public Long subtract(Object _output,
                     Object _inc)
Description copied from class: Outputs
Eg subtract("foobar", "foo") -> "bar"

Specified by:
subtract in class Outputs<Object>

add

public Object add(Object _prefix,
                  Object _output)
Description copied from class: Outputs
Eg add("foo", "bar") -> "foobar"

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

read

public Object read(DataInput in)
            throws IOException
Specified by:
read in class Outputs<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 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>