public function restrict($expression, $condition = DataSourceInterface::CONDITION_AND)
{
switch ($condition) {
case DataSourceInterface::CONDITION_AND:
$parentNode = $this->queryBuilder->andWhere();
break;
case DataSourceInterface::CONDITION_OR:
$parentNode = $this->queryBuilder->orWhere();
break;
default:
throw new \RuntimeException(sprintf('Unknown restrict condition "%s"', $condition));
}
$visitor = new ExpressionVisitor($this->queryBuilder);
$visitor->dispatch($expression, $parentNode);
}