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 |