/** * @param RequestFilterInterface $filter * @param bool $isNegation * @return string */ private function processFilter(RequestFilterInterface $filter, $isNegation) { if ($filter->getType() == RequestFilterInterface::TYPE_BOOL) { $query = $this->processBoolFilter($filter, $isNegation); $query = $this->conditionManager->wrapBrackets($query); } else { if (!isset($this->filters[$filter->getType()])) { throw new \InvalidArgumentException('Unknown filter type ' . $filter->getType()); } $query = $this->filters[$filter->getType()]->buildFilter($filter, $isNegation); $query = $this->preprocessor->process($filter, $isNegation, $query); } return $query; }