1 | <?php |
||
10 | class EventsCommit |
||
11 | { |
||
12 | |||
13 | /** |
||
14 | * @var int |
||
15 | */ |
||
16 | private $sequence; |
||
17 | /** |
||
18 | * @var int |
||
19 | */ |
||
20 | private $version; |
||
21 | /** |
||
22 | * @var EventWithMetaData[] |
||
23 | */ |
||
24 | private $eventsWithMetadata; |
||
25 | |||
26 | 18 | public function __construct( |
|
36 | |||
37 | /** |
||
38 | * @return int |
||
39 | */ |
||
40 | 3 | public function getSequence(): int |
|
44 | |||
45 | /** |
||
46 | * @return int |
||
47 | */ |
||
48 | 1 | public function getVersion(): int |
|
52 | |||
53 | /** |
||
54 | * @return EventWithMetaData[] |
||
55 | */ |
||
56 | 14 | public function getEventsWithMetadata() |
|
60 | |||
61 | public function filterEventsByClass(array $eventClasses): self |
||
62 | { |
||
63 | 7 | $events = array_filter($this->eventsWithMetadata, function (EventWithMetaData $eventWithMetaData) use ($eventClasses) { |
|
64 | 7 | return $this->eventHasAnyOfThisClasses($eventWithMetaData->getEvent(), $eventClasses); |
|
65 | 7 | }); |
|
66 | |||
67 | 7 | return new self( |
|
68 | 7 | $this->sequence, |
|
69 | 7 | $this->version, |
|
70 | 7 | $events |
|
71 | ); |
||
72 | } |
||
73 | |||
74 | 7 | private function eventHasAnyOfThisClasses($event, array $eventClasses) |
|
85 | } |