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"); }