## 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
`Outputs()`

Method Summary
`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.