jET
1.0alpha5


prv.doman.fsa
Class Automaton

java.lang.Object
  |
  +--prv.doman.fsa.Automaton
All Implemented Interfaces:
java.io.Serializable

public class Automaton
extends java.lang.Object
implements java.io.Serializable

The automaton is a short for FSA (finit state automaton).

See Also:
Serialized Form

Nested Class Summary
 class Automaton.Rule
          This is a rule for finite state automaton.
 
Constructor Summary
Automaton()
          Creates the new finit state automaton.
 
Method Summary
 void addDefaultRule(java.lang.String startState, java.lang.String endState)
          Adds new rule that is default for transitions between start state and end state.
 void addLetter(java.lang.String letter)
          Adds a letter to the alphabet.
 void addRule(java.lang.String letter, java.lang.String startState, java.lang.String endState)
          Adds a transition between states as result of occuring some letter from alphabet at input.
 void addState(java.lang.String stateName)
          Adds a new state for automaton.
 java.lang.String currentState()
          Retrives current state name.
 java.lang.String[] getAlphabet()
          Gets alphabet.
 boolean hasLetter(java.lang.String letter)
          Checks if letter is in alphabet.
 boolean isFinished()
          Checks if current state is final state.
 void setFinal(java.lang.String stateName)
          Sets state as final state.
 void setStart(java.lang.String stateName)
          Sets start state.
 java.lang.String[] stateNames()
          Gets all state names.
 void step(java.lang.String letter)
          Makes a step.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Automaton

public Automaton()
Creates the new finit state automaton.

Method Detail

addLetter

public void addLetter(java.lang.String letter)
Adds a letter to the alphabet.

Parameters:
letter - New letter to add.

addState

public void addState(java.lang.String stateName)
              throws StateRedefinitionException
Adds a new state for automaton.

Parameters:
stateName - Name of the new state.
Throws:
StateRedefinitionException - Thrown when adding state already exists in the set of states.

addRule

public void addRule(java.lang.String letter,
                    java.lang.String startState,
                    java.lang.String endState)
             throws UnknownLetterException,
                    UnknownStateException
Adds a transition between states as result of occuring some letter from alphabet at input.

Parameters:
letter - Input.
startState - Start state name.
endState - End state name determined by input and start name.
Throws:
UnknownLetterException - Thrown when letter is not in automaton's alphabet.
UnknownStateException - Thrown when start state or end state are not in set of states.

addDefaultRule

public void addDefaultRule(java.lang.String startState,
                           java.lang.String endState)
                    throws UnknownStateException
Adds new rule that is default for transitions between start state and end state.

Parameters:
startState - Start state name.
endState - End state name determined by input and start name.
Throws:
UnknownStateException - Thrown when start state or end state are not in set of states.

setFinal

public void setFinal(java.lang.String stateName)
              throws UnknownStateException
Sets state as final state.

State must be earlier added to set of states.

Parameters:
stateName - Name of state to be final.
Throws:
UnknownStateException - Thrown when set of states does not include this state.

setStart

public void setStart(java.lang.String stateName)
              throws UnknownStateException
Sets start state.

State must have been added to set of states.

Parameters:
stateName - Name of state.
Throws:
UnknownStateException - Thrown when set of states does not include this start state.

step

public void step(java.lang.String letter)
          throws UnknownLetterException,
                 FinalStateMissingException
Makes a step.

Parameters:
letter - Input.
Throws:
UnknownLetterException - Thrown when letter is not from alphabet.
FinalStateMissing - Thrown when automaton does not have at least one final state.
FinalStateMissingException

currentState

public java.lang.String currentState()
Retrives current state name.

Returns:
State name.

hasLetter

public boolean hasLetter(java.lang.String letter)
Checks if letter is in alphabet.

Parameters:
letter - Letter to check.
Returns:
True, if alphabet contains this letter.

stateNames

public java.lang.String[] stateNames()
Gets all state names.

Returns:
Array of all state names.

isFinished

public boolean isFinished()
Checks if current state is final state.

Returns:
True, if current state is final.

getAlphabet

public java.lang.String[] getAlphabet()
Gets alphabet.

Returns:
Array of letter of alphabet.

jET
1.0alpha5