dk.brics.automaton

## Class State

- java.lang.Object
- - dk.brics.automaton.State

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<State>

      public class State
      extends java.lang.Object
      implements java.io.Serializable, java.lang.Comparable<State>

  `Automaton` state.
  Author:
    Anders Møller <amoeller@cs.au.dk>
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `State()` Constructs a new state.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addTransition(Transition t)` Adds an outgoing transition.
    `int` | `compareTo(State s)` Compares this object with the specified object for order.
    `boolean` | `equals(java.lang.Object obj)` See `Object.equals(java.lang.Object)`.
    `java.util.List<Transition>` | `getSortedTransitions(boolean to_first)` Returns sorted list of outgoing transitions.
    `java.util.Set<Transition>` | `getTransitions()` Returns the set of outgoing transitions.
    `int` | `hashCode()` See `Object.hashCode()`.
    `boolean` | `isAccept()` Returns acceptance status.
    `void` | `setAccept(boolean accept)` Sets acceptance for this state.
    `State` | `step(char c)` Performs lookup in transitions, assuming determinism.
    `void` | `step(char c, java.util.Collection<State> dest)` Performs lookup in transitions, allowing nondeterminism.
    `java.lang.String` | `toString()` Returns string describing this state.

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

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### State

          public State()

      Constructs a new state. Initially, the new state is a reject state.

  - ### Method Detail

    - #### getTransitions

          public java.util.Set<Transition> getTransitions()

      Returns the set of outgoing transitions. Subsequent changes are reflected in the automaton.
      Returns:
        transition set

    - #### addTransition

          public void addTransition(Transition t)

      Adds an outgoing transition.
      Parameters:
        `t` - transition

    - #### setAccept

          public void setAccept(boolean accept)

      Sets acceptance for this state.
      Parameters:
        `accept` - if true, this state is an accept state

    - #### isAccept

          public boolean isAccept()

      Returns acceptance status.
      Returns:
        true is this is an accept state

    - #### step

          public State step(char c)

      Performs lookup in transitions, assuming determinism.
      Parameters:
        `c` - character to look up
      Returns:
        destination state, null if no matching outgoing transition
      See Also:
        `step(char, Collection)`

    - #### step

          public void step(char c,
                  java.util.Collection<State> dest)

      Performs lookup in transitions, allowing nondeterminism.
      Parameters:
        `c` - character to look up
        `dest` - collection where destination states are stored
      See Also:
        `step(char)`

    - #### getSortedTransitions

          public java.util.List<Transition> getSortedTransitions(boolean to_first)

      Returns sorted list of outgoing transitions.
      Parameters:
        `to_first` - if true, order by (to, min, reverse max); otherwise (min, reverse max, to)
      Returns:
        transition list

    - #### toString

          public java.lang.String toString()

      Returns string describing this state. Normally invoked via `Automaton.toString()`.
      Overrides:
        `toString` in class `java.lang.Object`

    - #### compareTo

          public int compareTo(State s)

      Compares this object with the specified object for order. States are ordered by the time of construction.
      Specified by:
        `compareTo` in interface `java.lang.Comparable<State>`

    - #### equals

          public boolean equals(java.lang.Object obj)

      See `Object.equals(java.lang.Object)`.
      Overrides:
        `equals` in class `java.lang.Object`

    - #### hashCode

          public int hashCode()

      See `Object.hashCode()`.
      Overrides:
        `hashCode` in class `java.lang.Object`