private function initFilterTypes()
    {
        $this->filterTypes = [];

        foreach ($this->loadFilterTypes() as $type) {
            if (!$type instanceof FilterTypeInterface) {
                throw new UnexpectedTypeException($type, FilterTypeInterface::class);
            }

            $this->filterTypes[get_class($type)] = $type;
        }
    }