package nl.ru.ai.projects.parrot.fsm;
import java.util.ArrayList;
import nl.ru.ai.projects.parrot.tools.TerminalCondition;
private State initialState;
private ArrayList<TerminalCondition> terminalConditions;
terminalConditions = new ArrayList<TerminalCondition>();
}
this.initialState = state;
}
terminalConditions.add(condition);
}
public void execute()
throws InterruptedException {
State currentState = initialState;
while ( !reachedTerminalCondition() && currentState!=null ) {
currentState = currentState.run();
if ( currentState.isFinalState() )
break;
}
}
initialState.clearResetStates();
initialState.reset();
for ( int i=0; i<terminalConditions.size(); i++ )
terminalConditions.get(i).reset();
}
for ( int i=0; i<terminalConditions.size(); i++ ) {
if ( terminalConditions.get(i).terminate() )
return true;
}
return false;
}
}