SimpleStateManager.java
package edu.udel.cis.vsl.gmc.smc;
import java.io.PrintStream;
import edu.udel.cis.vsl.gmc.TraceStepIF;
import edu.udel.cis.vsl.gmc.seq.StateManager;
/**
* The implementation of the interface {@link StateManager} used by SMC.
*
* @author Wenhao Wu (wuwenhao@udel.edu)
*/
public class SimpleStateManager extends StateManager<Integer, String> {
/**
* The {@link MatrixDirectedGraph} represents the state-transition map.
*/
MatrixDirectedGraph graph;
public SimpleStateManager(MatrixDirectedGraph graph) {
this.graph = graph;
}
@Override
public TraceStepIF<Integer> nextState(Integer state, String transition) {
return new TraceStep(transition, graph.getDestState(state, transition));
}
@Override
public int getId(Integer normalizedState) {
return normalizedState;
}
@Override
public void normalize(TraceStepIF<Integer> traceStep) {
// Do nothing
}
@Override
public void printStateShort(PrintStream out, Integer state) {
System.out.println("S:<" + state + ">");
}
@Override
public void printStateLong(PrintStream out, Integer state) {
System.out.println("State<" + state + ">");
}
@Override
public void printTransitionShort(PrintStream out, String transition) {
System.out.println("T:'" + transition + "'");
}
@Override
public void printTransitionLong(PrintStream out, String transition) {
System.out.println("Transition'" + transition + "'");
}
@Override
public void printAllStatesShort(PrintStream out) {
System.err.println("smc.StateManager.printAllStatesShort method"
+ " is not implemented yet.");
}
@Override
public void printAllStatesLong(PrintStream out) {
System.err.println("smc.StateManager.printAllStatesLong method"
+ " is not implemented yet.");
}
@Override
public void printTraceStep(Integer sourceState,
TraceStepIF<Integer> traceStep) {
StringBuilder sBuilder = new StringBuilder();
sBuilder.append("SourceState<");
sBuilder.append(sourceState);
sBuilder.append(">\n TraceStep:");
sBuilder.append(traceStep);
System.out.println(sBuilder);
}
@Override
public void printTraceStepFinalState(Integer finalState, int normalizedID) {
System.out.println(
"[" + normalizedID + "]FinalState<" + finalState + ">");
}
@Override
public int getPid(String transition) {
return 0;
}
}