in statemachine/src/main/java/org/apache/statemachine/StateMachineLogParser.java [106:135]
static Set<Tuple> getStateTuples(Map<String, List<String>> fsms) {
Set<Tuple> tuples = new HashSet<Tuple>();
for (List<String> transitions : fsms.values()) {
String currentEvent = null;
for (String s : transitions) {
//System.err.println(s);
Matcher m = eventPattern.matcher(s);
if (m.find()) {
currentEvent = m.group(1);
continue;
}
m = transitionPattern.matcher(s);
if (m.find()) {
if (currentEvent == null) {
System.err.println("event is null");
}
String state1 = m.group(1);
String state2 = m.group(2);
tuples.add(new Tuple(cleanupState(state1),
currentEvent,
cleanupState(state2)));
continue;
}
if (s.contains("deferred")) {
currentEvent = currentEvent + "[deferred]";
}
}
}
return tuples;
}