protected function findTransition(StateInterface $sourceState, StateInterface $targetState, $eventName = null, ConditionInterface $condition = null)
{
$conditionName = $condition ? $condition->getName() : null;
/* @var $transition TransitionInterface */
foreach ($sourceState->getTransitions() as $transition) {
$hasSameTargetState = $transition->getTargetState() === $targetState;
$hasSameCondition = $transition->getConditionName() == $conditionName;
$hasSameEvent = $transition->getEventName() == $eventName;
if ($hasSameTargetState && $hasSameCondition && $hasSameEvent) {
return $transition;
}
}
}