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 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 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 use `ListOfOutputs`, 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`.

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

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `UpToTwoPositiveIntOutputs.TwoLongs` Holds two long outputs.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `add(Object _prefix, Object _output)`
    `Long` | `common(Object _output1, Object _output2)`
    `Long` | `get(long v)`
    `UpToTwoPositiveIntOutputs.TwoLongs` | `get(long first, long second)`
    `Object` | `getNoOutput()`
    `static UpToTwoPositiveIntOutputs` | `getSingleton(boolean doShare)`
    `Object` | `merge(Object first, Object second)`
    `String` | `outputToString(Object output)`
    `long` | `ramBytesUsed(Object o)`
    `Object` | `read(DataInput in)`
    `Long` | `subtract(Object _output, Object _inc)`
    `void` | `write(Object _output, DataOutput out)`

    - ### Methods inherited from class org.apache.lucene.util.fst.Outputs

      `readFinalOutput, skipFinalOutput, skipOutput, writeFinalOutput`

    - ### 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)

      Specified by:
        `common` in class `Outputs<Object>`

    - #### subtract

          public Long subtract(Object _output,
                               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`

    - #### read

          public Object read(DataInput in)
                      throws IOException

      Specified by:
        `read` 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>`

    - #### ramBytesUsed

          public long ramBytesUsed(Object o)

      Specified by:
        `ramBytesUsed` in class `Outputs<Object>`

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.