/**
  * NameSpecification constructor.
  *
  * @param Expr   $expr
  * @param int    $specificationIndex
  * @param string $name
  */
 public function __construct(Expr $expr, $specificationIndex, $name)
 {
     parent::__construct($expr, $specificationIndex);
     $this->name = $name;
 }
 /**
  * StatusSpecification constructor.
  *
  * @param Expr   $expr
  * @param int    $specificationIndex
  */
 public function __construct(Expr $expr, $specificationIndex)
 {
     parent::__construct($expr, $specificationIndex);
     $this->status = false;
 }
 /**
  * CompositeSpecification constructor.
  *
  * @param Expr          $expr
  * @param int           $specificationIndex
  * @param Specification $first
  * @param Specification $second
  */
 public function __construct(Expr $expr, $specificationIndex, Specification $first, Specification $second)
 {
     parent::__construct($expr, $specificationIndex);
     $this->first = $first;
     $this->second = $second;
 }