Beispiel #1
0
 /**
  * @param StreamName $streamName
  * @param array $metadata
  * @param null|int $minVersion
  * @return Message[]
  */
 public function loadEventsByMetadataFrom(StreamName $streamName, array $metadata, $minVersion = null)
 {
     $argv = ['streamName' => $streamName, 'metadata' => $metadata, 'minVersion' => $minVersion];
     $event = $this->actionEventEmitter->getNewActionEvent(__FUNCTION__ . '.pre', $this, $argv);
     $this->getActionEventEmitter()->dispatch($event);
     if ($event->propagationIsStopped()) {
         return $event->getParam('streamEvents', []);
     }
     $streamName = $event->getParam('streamName');
     $metadata = $event->getParam('metadata');
     $minVersion = $event->getParam('minVersion');
     $events = $this->adapter->loadEventsByMetadataFrom($streamName, $metadata, $minVersion);
     $event->setName(__FUNCTION__ . '.post');
     $event->setParam('streamEvents', $events);
     $this->getActionEventEmitter()->dispatch($event);
     if ($event->propagationIsStopped()) {
         return [];
     }
     return $event->getParam('streamEvents');
 }