final public function whereSatisfies(ISpecification $specification)
    {
        $specification->verifyOfClass($this->class->getClassName());

        $this->append($specification->getCondition());

        return $this;
    }
final public function whereSatisfies(ISpecification $specification)
    {
        $specification->verifyOfClass($this->class->getClassName());

        $this->append($specification->getCondition());

        return $this;
    }
final public function whereSatisfies ( ISpecification $ specification ) { $ specification -> verifyOfClass ( $ this -> class -> getClassName ( ) ) ; $ this -> append ( $ specification -> getCondition ( ) ) ; return $ this ; }
Defines a condition that is satisfied when the value
supplied specification is satisfied.

@param ISpecification $specification

@return static
@throws TypeMismatchException
Defines a condition that is satisfied when the value supplied specification is satisfied .