org.apache.lucene.util.automaton

## Class Automaton.Builder

- java.lang.Object
- - org.apache.lucene.util.automaton.Automaton.Builder

- Enclosing class:
    Automaton

      public static class Automaton.Builder
      extends Object

  Records new states and transitions and then `finish()` creates the `Automaton`. Use this when you cannot create the Automaton directly because it's too restrictive to have to add all transitions leaving each state at once.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Automaton.Builder()` Default constructor, pre-allocating for 16 states and transitions.
    `Automaton.Builder(int numStates, int numTransitions)` Constructor which creates a builder with enough space for the given number of states and transitions.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addEpsilon(int source, int dest)` Add a [virtual] epsilon transition between source and dest.
    `void` | `addTransition(int source, int dest, int label)` Add a new transition with min = max = label.
    `void` | `addTransition(int source, int dest, int min, int max)` Add a new transition with the specified source, dest, min, max.
    `void` | `copy(Automaton other)` Copies over all states/transitions from other.
    `void` | `copyStates(Automaton other)` Copies over all states from other.
    `int` | `createState()` Create a new state.
    `Automaton` | `finish()` Compiles all added states and transitions into a new `Automaton` and returns it.
    `int` | `getNumStates()` How many states this automaton has.
    `boolean` | `isAccept(int state)` Returns true if this state is an accept state.
    `void` | `setAccept(int state, boolean accept)` Set or clear this state as an accept state.

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

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

- - ### Constructor Detail

    - #### Automaton.Builder

          public Automaton.Builder()

      Default constructor, pre-allocating for 16 states and transitions.

    - #### Automaton.Builder

          public Automaton.Builder(int numStates,
                           int numTransitions)

      Constructor which creates a builder with enough space for the given number of states and transitions.
      Parameters:
        `numStates` - Number of states.
        `numTransitions` - Number of transitions.

  - ### Method Detail

    - #### addTransition

          public void addTransition(int source,
                           int dest,
                           int label)

      Add a new transition with min = max = label.

    - #### addTransition

          public void addTransition(int source,
                           int dest,
                           int min,
                           int max)

      Add a new transition with the specified source, dest, min, max.

    - #### addEpsilon

          public void addEpsilon(int source,
                        int dest)

      Add a [virtual] epsilon transition between source and dest. Dest state must already have all transitions added because this method simply copies those same transitions over to source.

    - #### finish

          public Automaton finish()

      Compiles all added states and transitions into a new `Automaton` and returns it.

    - #### createState

          public int createState()

      Create a new state.

    - #### setAccept

          public void setAccept(int state,
                       boolean accept)

      Set or clear this state as an accept state.

    - #### isAccept

          public boolean isAccept(int state)

      Returns true if this state is an accept state.

    - #### getNumStates

          public int getNumStates()

      How many states this automaton has.

    - #### copy

          public void copy(Automaton other)

      Copies over all states/transitions from other.

    - #### copyStates

          public void copyStates(Automaton other)

      Copies over all states from other.

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