private function getSequentialStage(string $direction): ?StageInterface
    {
        $dir = in_array($direction, ['prev', 'next']) ? $direction : 'next';
        ksort($this->stageOrder);
        // forward the array pointer to the current index
        while (current($this->stageOrder) !== $this->currentStageName && null !== key($this->stageOrder)) {
            next($this->stageOrder);
        }
        $key = $dir($this->stageOrder);
        if (null !== $key && false !== $key) {
            return $this->getStageInstance($this->stagesByName[$key]);
        }

        return null;
    }
private function getSequentialStage(string $direction): ?StageInterface
    {
        $dir = in_array($direction, ['prev', 'next']) ? $direction : 'next';
        ksort($this->stageOrder);
        // forward the array pointer to the current index
        while (current($this->stageOrder) !== $this->currentStageName && null !== key($this->stageOrder)) {
            next($this->stageOrder);
        }
        $key = $dir($this->stageOrder);
        if (null !== $key && false !== $key) {
            return $this->getStageInstance($this->stagesByName[$key]);
        }

        return null;
    }
private function getSequentialStage ( string $ direction ) : ? StageInterface { $ dir = in_array ( $ direction , [ 'prev' , 'next' ] ) ? $ direction : 'next' ; ksort ( $ this -> stageOrder ) ; // forward the array pointer to the current index while ( current ( $ this -> stageOrder ) !== $ this -> currentStageName && null !== key ( $ this -> stageOrder ) ) { next ( $ this -> stageOrder ) ; } $ key = $ dir ( $ this -> stageOrder ) ; if ( null !== $ key && false !== $ key ) { return $ this -> getStageInstance ( $ this -> stagesByName [ $ key ] ) ; } return null ; }
Get either previous or next stage
Get either previous or next stage