public function appendEvents($type, DomainEventStreamInterface $events) { if (!$events->hasNext()) { return; } $next = $events->peek(); if (0 === $next->getScn() && $this->fileResolver->eventFileExists($type, $next->getAggregateIdentifier())) { throw new ConflictingModificationException(sprintf("Could not create event stream for aggregate, such stream " . "already exists, type=%s, id=%s", $type, $next->getAggregateIdentifier())); } $file = $this->fileResolver->openEventFileForWriting($type, $next->getAggregateIdentifier()); $eventMessageWriter = new FilesystemEventMessageWriter($file, $this->serializer); while ($events->hasNext()) { $eventMessageWriter->writeEventMessage($events->next()); } }
public function peek() { return $this->eventStream->peek(); }