/**
  * {@inheritdoc}
  */
 public function isSatisfiedBy($subject)
 {
     $class = $this->getSubject();
     if ($subject instanceof $class) {
         throw new UnexpectedTypeException($subject, $class);
     }
     return $this->expression->evaluate($subject);
 }
 /**
  * {@inheritdoc}
  */
 public function dispatch(Expr\Expression $expression)
 {
     $this->builder->where($expression->accept($this));
 }