Package org.apache.lucene.util.fst

# Class PairOutputs<A,B>

java.lang.Object
org.apache.lucene.util.fst.Outputs<PairOutputs.Pair<A,B>>
org.apache.lucene.util.fst.PairOutputs<A,B>

public class PairOutputs<A,B> extends Outputs<PairOutputs.Pair<A,B>>
An FST `Outputs` implementation, holding two other outputs.

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

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `PairOutputs.Pair<A,B>`
  Holds a single pair of two outputs.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PairOutputs(Outputs<A> outputs1, Outputs<B> outputs2)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `PairOutputs.Pair<A,B>`
  `add(PairOutputs.Pair<A,B> prefix, PairOutputs.Pair<A,B> output)`
  Eg add("foo", "bar") -> "foobar"
  `PairOutputs.Pair<A,B>`
  `common(PairOutputs.Pair<A,B> pair1, PairOutputs.Pair<A,B> pair2)`
  Eg common("foobar", "food") -> "foo"
  `PairOutputs.Pair<A,B>`
  `getNoOutput()`
  NOTE: this output is compared with == so you must ensure that all methods return the single object if it's really no output
  `PairOutputs.Pair<A,B>`
  `newPair(A a, B b)`
  Create a new Pair
  `String`
  `outputToString(PairOutputs.Pair<A,B> output)`
  `long`
  `ramBytesUsed(PairOutputs.Pair<A,B> output)`
  Return memory usage for the provided output.
  `PairOutputs.Pair<A,B>`
  `read(DataInput in)`
  Decode an output value previously written with `Outputs.write(Object, DataOutput)`.
  `void`
  `skipOutput(DataInput in)`
  Skip the output; defaults to just calling `Outputs.read(org.apache.lucene.store.DataInput)` and discarding the result.
  `PairOutputs.Pair<A,B>`
  `subtract(PairOutputs.Pair<A,B> output, PairOutputs.Pair<A,B> inc)`
  Eg subtract("foobar", "foo") -> "bar"
  `String`
  `toString()`
  `void`
  `write(PairOutputs.Pair<A,B> output, DataOutput writer)`
  Encode an output value into a `DataOutput`.

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

  `merge, readFinalOutput, skipFinalOutput, writeFinalOutput`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### PairOutputs

    public PairOutputs(Outputs<A> outputs1, Outputs<B> outputs2)

- ## Method Details

  - ### newPair

    public PairOutputs.Pair<A,B> newPair(A a, B b)
    Create a new Pair

  - ### common

    public PairOutputs.Pair<A,B> common(PairOutputs.Pair<A,B> pair1, PairOutputs.Pair<A,B> pair2)
    Description copied from class: `Outputs`
    Eg common("foobar", "food") -> "foo"
    Specified by:
      `common` in class `Outputs<PairOutputs.Pair<A,B>>`

  - ### subtract

    public PairOutputs.Pair<A,B> subtract(PairOutputs.Pair<A,B> output, PairOutputs.Pair<A,B> inc)
    Description copied from class: `Outputs`
    Eg subtract("foobar", "foo") -> "bar"
    Specified by:
      `subtract` in class `Outputs<PairOutputs.Pair<A,B>>`

  - ### add

    public PairOutputs.Pair<A,B> add(PairOutputs.Pair<A,B> prefix, PairOutputs.Pair<A,B> output)
    Description copied from class: `Outputs`
    Eg add("foo", "bar") -> "foobar"
    Specified by:
      `add` in class `Outputs<PairOutputs.Pair<A,B>>`

  - ### write

    public void write(PairOutputs.Pair<A,B> output, DataOutput writer) throws IOException
    Description copied from class: `Outputs`
    Encode an output value into a `DataOutput`.
    Specified by:
      `write` in class `Outputs<PairOutputs.Pair<A,B>>`
    Throws:
      `IOException`

  - ### read

    public PairOutputs.Pair<A,B> read(DataInput in) throws IOException
    Description copied from class: `Outputs`
    Decode an output value previously written with `Outputs.write(Object, DataOutput)`.
    Specified by:
      `read` in class `Outputs<PairOutputs.Pair<A,B>>`
    Throws:
      `IOException`

  - ### skipOutput

    public void skipOutput(DataInput in) throws IOException
    Description copied from class: `Outputs`
    Skip the output; defaults to just calling `Outputs.read(org.apache.lucene.store.DataInput)` and discarding the result.
    Overrides:
      `skipOutput` in class `Outputs<PairOutputs.Pair<A,B>>`
    Throws:
      `IOException`

  - ### getNoOutput

    public PairOutputs.Pair<A,B> 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<PairOutputs.Pair<A,B>>`

  - ### outputToString

    public String outputToString(PairOutputs.Pair<A,B> output)
    Specified by:
      `outputToString` in class `Outputs<PairOutputs.Pair<A,B>>`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### ramBytesUsed

    public long ramBytesUsed(PairOutputs.Pair<A,B> output)
    Description copied from class: `Outputs`
    Return memory usage for the provided output.
    Specified by:
      `ramBytesUsed` in class `Outputs<PairOutputs.Pair<A,B>>`
    See Also:
      - `Accountable`