## org.biojava.utils.automata
Class NfaSubModel

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

All Implemented Interfaces:
  NfaBuilder

    public class NfaSubModel

extends Object
implements NfaBuilder

This class caches a reference to all objects that it directs its delegate to make. These references make it relatively easy for it to duplicate all objects made through this class.

Method Summary
`org.biojava.utils.automata.FiniteAutomaton.Transition` `addEpsilonTransition(org.biojava.utils.automata.FiniteAutomaton.Node start, org.biojava.utils.automata.FiniteAutomaton.Node end)`
`org.biojava.utils.automata.FiniteAutomaton.Transition` `addLambdaTransition(org.biojava.utils.automata.FiniteAutomaton.Node start, org.biojava.utils.automata.FiniteAutomaton.Node end)`
`org.biojava.utils.automata.FiniteAutomaton.Node` `addNode(boolean isTerminal)`
`org.biojava.utils.automata.FiniteAutomaton.Transition` `addTransition(org.biojava.utils.automata.FiniteAutomaton.Node start, org.biojava.utils.automata.FiniteAutomaton.Node end, Symbol sym)`
`void` `append(NfaSubModel submodel)`
`org.biojava.utils.automata.FiniteAutomaton.NodeSet` `createNodeSet()`
`NfaSubModel` `duplicate()` Makes a deep clone of this instance.
`FiniteAutomaton` `getAutomaton()`
`org.biojava.utils.automata.FiniteAutomaton.Node` `getEnd()`
`org.biojava.utils.automata.FiniteAutomaton.NodeSet` `getNodes()`
`org.biojava.utils.automata.FiniteAutomaton.Node` `getStart()`
`Set` `getTransitions()`
`String` `toString()`

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

Method Detail

### getAutomaton

    public FiniteAutomaton getAutomaton()

  Specified by:
    `getAutomaton` in interface `NfaBuilder`

### getStart

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

  Specified by:
    `getStart` in interface `NfaBuilder`

### getEnd

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

  Specified by:
    `getEnd` in interface `NfaBuilder`

### addNode

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

  Specified by:
    `addNode` in interface `NfaBuilder`

### 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)

  Specified by:
    `addTransition` in interface `NfaBuilder`

### addEpsilonTransition

    public org.biojava.utils.automata.FiniteAutomaton.Transition addEpsilonTransition(org.biojava.utils.automata.FiniteAutomaton.Node start,
                                                                                      org.biojava.utils.automata.FiniteAutomaton.Node end)

  Specified by:
    `addEpsilonTransition` in interface `NfaBuilder`

### addLambdaTransition

    public org.biojava.utils.automata.FiniteAutomaton.Transition addLambdaTransition(org.biojava.utils.automata.FiniteAutomaton.Node start,
                                                                                     org.biojava.utils.automata.FiniteAutomaton.Node end)

  Specified by:
    `addLambdaTransition` in interface `NfaBuilder`

### getNodes

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

  Specified by:
    `getNodes` in interface `NfaBuilder`

### getTransitions

    public Set getTransitions()

  Specified by:
    `getTransitions` in interface `NfaBuilder`

### createNodeSet

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

  Specified by:
    `createNodeSet` in interface `NfaBuilder`

### duplicate

    public NfaSubModel duplicate()

  Makes a deep clone of this instance.

### append

    public void append(NfaSubModel submodel)

### toString

    public String toString()

  Specified by:
    `toString` in interface `NfaBuilder`
  Overrides:
    `toString` in class `Object`