Metabor\Statemachine\Util\SetupHelper::findTransition PHP Method

findTransition() protected method

protected findTransition ( MetaborStd\Statemachine\StateInterface $sourceState, MetaborStd\Statemachine\StateInterface $targetState, string $eventName = null, MetaborStd\Statemachine\ConditionInterface $condition = null ) : MetaborStd\Statemachine\TransitionInterface
$sourceState MetaborStd\Statemachine\StateInterface
$targetState MetaborStd\Statemachine\StateInterface
$eventName string
$condition MetaborStd\Statemachine\ConditionInterface
return MetaborStd\Statemachine\TransitionInterface
    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;
            }
        }
    }