State<C> stateFrom = context.getState();
State<C> stateTo = transitions.get(stateFrom);
try {
if (stateTo == null) {
throw new LogicViolationError("Invalid Event: " + Event.this.toString() +
" triggered while in State: " + context.getState() + " for " + context);
} else {
callOnTriggered(context, stateFrom, stateTo);
runner.callOnEventTriggered(Event.this, stateFrom, stateTo, context);
runner.setCurrentState(stateTo, context);