@Override protected Boolean visitFState(FState state) { if (initialState == null) { initialState = new FState(state.getName()); result = new FLTS(); result.setInitialState(initialState); final Set<FState> states = new HashSet<FState>(); states.add(initialState); statesStack.push(states); } return true; }
private FTransition getEvaluator(FGuard originalGuard, FState preEvaluation) { if (originalGuard == null || originalGuard.getEvaluator() == null) { return null; } FState pastState = preEvaluation; while (pastState != null) { final List<Transition> outgoings = pastState.getOutgoings(); for (final Transition t : outgoings) { final FTransition transition = (FTransition) t; final FAction pastAction = transition.getFAction(); if (pastAction != null) { if (originalGuard.getEvaluator().getFAction().equals(pastAction)) { return transition; } } } if (pastState.getIncoming() != null) { pastState = (FState) pastState.getIncoming().getSource(); } else { pastState = null; } } throw new FatalFwitterException("evaluator transition not found"); }