| Total Complexity | 6 |
| Total Lines | 32 |
| Duplicated Lines | 0 % |
| Coverage | 69.23% |
| Changes | 0 | ||
| 1 | <?php |
||
| 10 | class TransitionEventCallbackResolver |
||
| 11 | { |
||
| 12 | private array $transitionEventCallbackFactories; |
||
| 13 | |||
| 14 | 21 | public function __construct(TransitionEventCallbackFactory ...$transitionEventCallbackFactories) |
|
| 15 | { |
||
| 16 | 21 | $this->transitionEventCallbackFactories = $transitionEventCallbackFactories + static::defaultTransitionEventCallbackFactories(); |
|
| 17 | 21 | } |
|
| 18 | |||
| 19 | public function register(TransitionEventCallbackFactory $transitionEventCallbackFactory): void |
||
| 22 | } |
||
| 23 | |||
| 24 | /** |
||
| 25 | * @param mixed $do |
||
| 26 | */ |
||
| 27 | 21 | public function resolve($do): TransitionEventCallback |
|
| 28 | { |
||
| 29 | 21 | foreach ($this->transitionEventCallbackFactories as $transitionEventCallbackFactory) { |
|
| 30 | 21 | if ($transitionEventCallbackFactory->supports($do)) { |
|
| 31 | 21 | return $transitionEventCallbackFactory->build($do); |
|
| 32 | } |
||
| 33 | } |
||
| 34 | |||
| 35 | throw new \RuntimeException('Could not resolve transition event callback'); |
||
| 36 | } |
||
| 37 | |||
| 38 | 21 | public static function defaultTransitionEventCallbackFactories(): array |
|
| 42 | ]; |
||
| 43 | } |
||
| 45 |