AfterAnalysisChannel::buildEventHandler()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 3
c 1
b 0
f 0
dl 0
loc 5
rs 10
cc 1
nc 1
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Churn\Event\Channel;
6
7
use Churn\Event\Channel;
8
use Churn\Event\Event\AfterAnalysis as AfterAnalysisEvent;
9
use Churn\Event\Subscriber\AfterAnalysis;
10
use Closure;
11
12
/**
13
 * @internal
14
 * @implements Channel<AfterAnalysis, AfterAnalysisEvent>
15
 */
16
final class AfterAnalysisChannel implements Channel
17
{
18
    /**
19
     * @param object $subscriber A subscriber instance.
20
     */
21
    #[\Override]
22
    public function accepts($subscriber): bool
23
    {
24
        return $subscriber instanceof AfterAnalysis;
25
    }
26
27
    /**
28
     * @psalm-return class-string<AfterAnalysisEvent>
29
     */
30
    #[\Override]
31
    public function getEventClassname(): string
32
    {
33
        return AfterAnalysisEvent::class;
34
    }
35
36
    /**
37
     * @param object $subscriber A subscriber instance.
38
     * @psalm-param AfterAnalysis $subscriber
39
     * @psalm-return Closure(AfterAnalysisEvent): void
40
     */
41
    #[\Override]
42
    public function buildEventHandler($subscriber): Closure
43
    {
44
        return static function (AfterAnalysisEvent $event) use ($subscriber): void {
45
            $subscriber->onAfterAnalysis($event);
46
        };
47
    }
48
}
49