## org.biojava.utils.automata
Class FiniteAutomaton

    java.lang.Object
      org.biojava.utils.automata.FiniteAutomaton

Direct Known Subclasses:
  Nfa

    public class FiniteAutomaton

extends Object

Class for modelling finite automata.

This class models basic FA behaviour. More specialised behaviour is implemented by subclassing this.

Since:
  1.4
Author:
  David Huen

Field Summary
`protected org.biojava.utils.automata.FiniteAutomaton.Node` `end`
`protected Set` `nodes`
`protected org.biojava.utils.automata.FiniteAutomaton.Node` `start`
`protected Set` `transitions`

Method Summary
`org.biojava.utils.automata.FiniteAutomaton.Node` `addNode(boolean terminal)` Add a node to the FA.
`org.biojava.utils.automata.FiniteAutomaton.Transition` `addTransition(org.biojava.utils.automata.FiniteAutomaton.Node start, org.biojava.utils.automata.FiniteAutomaton.Node end, Symbol sym)`
`protected int` `alphaIndex(Symbol sym)`
`org.biojava.utils.automata.FiniteAutomaton.NodeSet` `createNodeSet()`
`FiniteAutomaton` `getAutomaton()`
`org.biojava.utils.automata.FiniteAutomaton.Node` `getEnd()`
`org.biojava.utils.automata.FiniteAutomaton.NodeSet` `getNodes()` get all Nodes within this instance.
`org.biojava.utils.automata.FiniteAutomaton.Node` `getStart()`
`Set` `getTransitions()` retrieve Set of all transitions in instance.
`String` `toString()` dumps internal data of Nodes and Transitions that describe this FiniteAutomaton.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### nodes

    protected Set nodes

### transitions

    protected Set transitions

### start

    protected org.biojava.utils.automata.FiniteAutomaton.Node start

### end

    protected org.biojava.utils.automata.FiniteAutomaton.Node end

Method Detail

### getStart

    public org.biojava.utils.automata.FiniteAutomaton.Node getStart()

### getEnd

    public org.biojava.utils.automata.FiniteAutomaton.Node getEnd()

### getAutomaton

    public FiniteAutomaton getAutomaton()

### addTransition

    public org.biojava.utils.automata.FiniteAutomaton.Transition addTransition(org.biojava.utils.automata.FiniteAutomaton.Node start,
                                                                               org.biojava.utils.automata.FiniteAutomaton.Node end,
                                                                               Symbol sym)

### addNode

    public org.biojava.utils.automata.FiniteAutomaton.Node addNode(boolean terminal)

  Add a node to the FA.

  Parameters:
    `terminal` - Is the Node terminal?

### getNodes

    public org.biojava.utils.automata.FiniteAutomaton.NodeSet getNodes()

  get all Nodes within this instance.

### getTransitions

    public Set getTransitions()

  retrieve Set of all transitions in instance.

### createNodeSet

    public org.biojava.utils.automata.FiniteAutomaton.NodeSet createNodeSet()

### toString

    public String toString()

  dumps internal data of Nodes and Transitions that describe this FiniteAutomaton. It is not possible to dump it as a regex as there are FA that cannot be expressed as a regex.

  Overrides:
    `toString` in class `Object`

### alphaIndex

    protected int alphaIndex(Symbol sym)
                      throws IllegalSymbolException

  Throws:
    `IllegalSymbolException`