/**
  * @param integer $expectedPlayHead
  * @param integer $actualPlayHead
  */
 public function __construct($expectedPlayHead, $actualPlayHead)
 {
     parent::__construct(sprintf(static::$messageTemplate, $expectedPlayHead, $actualPlayHead));
 }
 /**
  * @param Uuid $aggregateId
  */
 public function __construct(Uuid $aggregateId)
 {
     parent::__construct(sprintf(static::$messageTemplate, $aggregateId->getValue()));
 }
 /**
  * @param string $eventName
  * @param string $aggregateClassName
  */
 public function __construct($eventName, $aggregateClassName)
 {
     parent::__construct(sprintf(static::$messageTemplate, $eventName, $aggregateClassName));
 }
 public function __construct($type, $identifier)
 {
     parent::__construct(sprintf("Aggregate of type [%s] with identifier [%s] cannot be found.", $type, $identifier), 0, null);
 }