|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object | +--com.karneim.util.collection.set.SAutomaton
This class represents a (non-)deterministic final automaton (NFA/DFA).
Use this class to create an automaton manually by adding states to the automaton and transitions to other states
or to browse through the automaton's states and implement your own matching strategies.
to create an automaton manually try
import com.karneim.util.collection.set.*;
public class Test {
public static void main(String[] args) {
SAutomaton automaton = new SAutomaton();
IStatePro s1 = automaton.addState(false);
IStatePro s2 = automaton.addState(true);
s1.addTransition(new CharSet("0123456789"),s2);
s2.addTransition(new CharSet("0123456789"),s2);
automaton.setStartState(s1);
}
}
to browse through the automaton's states try
final IStatePro startState = automaton.getStartState();
final StateProSet states = new StateProSet(startState);
final StateProSet.Iterator it = states.iterator();
for (IStatePro state=it.next(); state!=null; state=it.next()) {
IStatePro.ITransition[] transitions = state.getTransitions();
for (int i=0; i transitions.length; ++i) {
states.add(transitions[i].getToState());
System.out.println(
"from " + transitions[i].getFromState()
+ " through " + transitions[i].getCharSet()
+ " to " + transitions[i].getToState()
);
}
}
to implement own matching strategies try
/**
* returns true if input is an existing path through automaton's states
* otherwise false.
*
public static boolean incompleteMatch(SAutomaton automaton,String input) {
IState current = automaton.getStartState().visit();
for (int i=0; i input.length(); ++i) {
current = current.next(input.charAt(i));
if (current == null) return false;
}
return true;
}
| Inner Class Summary | |
static interface |
SAutomaton.IChangeListener
The listener interface for receiving change events of a SAutomaton. |
| Constructor Summary | |
SAutomaton()
Creates a new empty automaton |
|
SAutomaton(FSAData data)
|
|
SAutomaton(java.io.InputStream automatonDataStream)
|
|
| Method Summary | |
void |
addAll(SAutomaton automaton)
|
void |
addChangeListener(SAutomaton.IChangeListener listener)
Adds the specified listener to receive change events from this automaton. |
IStatePro |
addState()
Adds a new non final state to this automaton. |
IStatePro |
addState(boolean isFinal)
Adds a new final or non final state to this automaton. |
void |
clear()
Removes all states of this automaton. |
void |
complement()
|
IStatePro |
getStartState()
Returns the current start state of the automaton. important: The result is null, if and only if the current start state is null |
StateProSet |
getStates()
Returns all states of this automaton whatever they are reachable through the current start state or not. |
boolean |
isDeterministic()
|
void |
minimize()
Minimizes this automaton as much as possible. |
void |
removeAll(SAutomaton automaton)
|
boolean |
removeChangeListener(SAutomaton.IChangeListener listener)
Removes the specified listener so that it no longer receives change events from this automaton. |
boolean |
removeState(IStatePro state)
Removes the specified state from this automaton. |
void |
retainAll(SAutomaton automaton)
|
void |
setStartState(IStatePro state)
Sets the automaton's start state to the specified state. |
FSAData |
toData()
|
void |
toData(java.io.OutputStream automatonDataStream)
|
java.lang.String |
toString()
|
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
public SAutomaton()
public SAutomaton(FSAData data)
public SAutomaton(java.io.InputStream automatonDataStream)
throws java.io.IOException,
java.lang.ClassNotFoundException
| Method Detail |
public void addChangeListener(SAutomaton.IChangeListener listener)
public boolean removeChangeListener(SAutomaton.IChangeListener listener)
listener - public boolean isDeterministic()
public IStatePro getStartState()
public void setStartState(IStatePro state)
state - public IStatePro addState()
public IStatePro addState(boolean isFinal)
public boolean removeState(IStatePro state)
state - public void clear()
public void minimize()
public StateProSet getStates()
public void complement()
public void addAll(SAutomaton automaton)
public void retainAll(SAutomaton automaton)
public void removeAll(SAutomaton automaton)
public java.lang.String toString()
toString in class java.lang.Objectpublic FSAData toData()
public void toData(java.io.OutputStream automatonDataStream)
throws java.io.IOException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||