org.apache.lucene.util.fst

## Class Outputs<T>

- java.lang.Object
- - org.apache.lucene.util.fst.Outputs<T>

- Direct Known Subclasses:
    ByteSequenceOutputs, CharSequenceOutputs, IntSequenceOutputs, NoOutputs, PairOutputs, PositiveIntOutputs

      public abstract class Outputs<T>
      extends Object

  Represents the outputs for an FST, providing the basic algebra required for building and traversing the FST.

  Note that any operation that returns NO_OUTPUT must return the same singleton object from `getNoOutput()`.

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

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Outputs()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract T` | `add(T prefix, T output)` Eg add("foo", "bar") -> "foobar"
    `abstract T` | `common(T output1, T output2)` Eg common("foo", "foobar") -> "foo"
    `abstract T` | `getNoOutput()` NOTE: this output is compared with == so you must ensure that all methods return the single object if it's really no output
    `T` | `merge(T first, T second)`
    `abstract String` | `outputToString(T output)`
    `abstract T` | `read(DataInput in)` Decode an output value previously written with `write(Object, DataOutput)`.
    `T` | `readFinalOutput(DataInput in)` Decode an output value previously written with `writeFinalOutput(Object, DataOutput)`.
    `abstract T` | `subtract(T output, T inc)` Eg subtract("foobar", "foo") -> "bar"
    `abstract void` | `write(T output, DataOutput out)` Encode an output value into a `DataOutput`.
    `void` | `writeFinalOutput(T output, DataOutput out)` Encode an final node output value into a `DataOutput`.

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

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

- - ### Constructor Detail

    - #### Outputs

          public Outputs()

  - ### Method Detail

    - #### common

          public abstract T common(T output1,
                 T output2)

      Eg common("foo", "foobar") -> "foo"

    - #### subtract

          public abstract T subtract(T output,
                   T inc)

      Eg subtract("foobar", "foo") -> "bar"

    - #### add

          public abstract T add(T prefix,
              T output)

      Eg add("foo", "bar") -> "foobar"

    - #### write

          public abstract void write(T output,
                   DataOutput out)
                              throws IOException

      Encode an output value into a `DataOutput`.
      Throws:
        `IOException`

    - #### writeFinalOutput

          public void writeFinalOutput(T output,
                              DataOutput out)
                                throws IOException

      Encode an final node output value into a `DataOutput`. By default this just calls `write(Object, DataOutput)`.
      Throws:
        `IOException`

    - #### read

          public abstract T read(DataInput in)
                          throws IOException

      Decode an output value previously written with `write(Object, DataOutput)`.
      Throws:
        `IOException`

    - #### readFinalOutput

          public T readFinalOutput(DataInput in)
                            throws IOException

      Decode an output value previously written with `writeFinalOutput(Object, DataOutput)`. By default this just calls `read(DataInput)`.
      Throws:
        `IOException`

    - #### getNoOutput

          public abstract T getNoOutput()

      NOTE: this output is compared with == so you must ensure that all methods return the single object if it's really no output

    - #### outputToString

          public abstract String outputToString(T output)

    - #### merge

          public T merge(T first,
                T second)

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