/** * @param OperatorInterface $operator * @return HandlerInterface * @throws \ABK\QueryBundle\Filter\Exceptions\InvalidArgumentException */ public function getHandler(OperatorInterface $operator) { $name = $operator->getName(); $type = $operator->getType(); if (!isset($this->registeredHandlers[$type]) || !in_array($name, $this->registeredHandlers[$type])) { throw new InvalidArgumentException('The given operator "' . $name . '" does not have an implemented handler for type ' . $type . '.'); } if ($operator instanceof ComparisonOperatorInterface) { return $this->getComparisonOperatorHandlerInstance($operator); } return null; }