/**
* @param Stream $stream
* @throws Exception\RuntimeException
* @return void
*/
public function create(Stream $stream)
{
$argv = ['stream' => $stream];
$event = $this->actionEventEmitter->getNewActionEvent(__FUNCTION__ . '.pre', $this, $argv);
$this->actionEventEmitter->dispatch($event);
if ($event->propagationIsStopped()) {
return;
}
if ($this->transactionLevel === 0) {
throw new RuntimeException('Stream creation failed. EventStore is not in an active transaction');
}
$stream = $event->getParam('stream');
$this->adapter->create($stream);
$this->recordedEvents = array_merge($this->recordedEvents, $stream->streamEvents());
$event->setName(__FUNCTION__ . '.post');
$this->actionEventEmitter->dispatch($event);
}