// prevents visiting the same state multiple times
Set stateSet = new HashSet(step.getBeforeStatus().getStates());
// breath-first search to-do list
LinkedList todoList = new LinkedList(stateSet);
while (!todoList.isEmpty()) {
TransitionTarget tt = (TransitionTarget) todoList.removeFirst();
for (Iterator i = tt.getTransitionsList().iterator();
i.hasNext();) {
Transition t = (Transition) i.next();
if (!transSet.contains(t)) {
transSet.add(t);