Package org.apache.lucene.util.fst

## Class FST.Arc<T>

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

- Enclosing class:
    FST<T>

      public static final class FST.Arc<T>
      extends Object

  Represents a single arc.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Arc()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `arcIdx()` | Where we are in the array; only valid if bytesPerArc != 0.
    `int` | `bytesPerArc()` | Non-zero if this arc is part of a node with fixed length arcs, which means all arcs for the node are encoded with a fixed number of bytes so that we binary search or direct address.
    `FST.Arc<T>` | `copyFrom​(FST.Arc<T> other)` | Returns this
    `byte` | `flags()` |
    `boolean` | `isFinal()` |
    `boolean` | `isLast()` |
    `int` | `label()` |
    `T` | `nextFinalOutput()` |
    `byte` | `nodeFlags()` | Node header flags.
    `int` | `numArcs()` | How many arcs; only valid if bytesPerArc != 0 (fixed length arcs).
    `T` | `output()` |
    `long` | `posArcsStart()` | Where the first arc in the array starts; only valid if bytesPerArc != 0
    `long` | `target()` | Ord/address to target node.
    `String` | `toString()` |

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

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

- - ### Constructor Detail

    - #### Arc

          public Arc()

  - ### Method Detail

    - #### copyFrom

          public FST.Arc<T> copyFrom​(FST.Arc<T> other)

      Returns this

    - #### isLast

          public boolean isLast()

    - #### isFinal

          public boolean isFinal()

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### label

          public int label()

    - #### output

          public T output()

    - #### target

          public long target()

      Ord/address to target node.

    - #### flags

          public byte flags()

    - #### nextFinalOutput

          public T nextFinalOutput()

    - #### arcIdx

          public int arcIdx()

      Where we are in the array; only valid if bytesPerArc != 0.

    - #### nodeFlags

          public byte nodeFlags()

      Node header flags. Only meaningful to check if the value is either `FST.ARCS_FOR_BINARY_SEARCH` or `FST.ARCS_FOR_DIRECT_ADDRESSING` or `FST.ARCS_FOR_CONTINUOUS` (other value when bytesPerArc == 0).

    - #### posArcsStart

          public long posArcsStart()

      Where the first arc in the array starts; only valid if bytesPerArc != 0

    - #### bytesPerArc

          public int bytesPerArc()

      Non-zero if this arc is part of a node with fixed length arcs, which means all arcs for the node are encoded with a fixed number of bytes so that we binary search or direct address. We do when there are enough arcs leaving one node. It wastes some bytes but gives faster lookups.

    - #### numArcs

          public int numArcs()

      How many arcs; only valid if bytesPerArc != 0 (fixed length arcs). For a node designed for binary search this is the array size. For a node designed for direct addressing, this is the label range.