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
`static class` `PairOutputs.Pair<A,B>` Holds a single pair of two outputs.

### Constructor Summary

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

### Method Summary

All Methods Instance Methods Concrete Methods
`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 Detail

#### PairOutputs

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

### Method Detail

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