protected function evaluateFilter($value, $filter)
    {
        $filter = explode(' ', $filter, 2);
        if (1 === count($filter)) {
            $args   = [];
            $filter = $filter[0];
        } else {
            $args   = array_map('trim', explode(',', $filter[1]));
            $filter = $filter[0];
        }

        if (false === isset($this->filters[$filter])) {
            throw new UnkownFilterException(sprintf('The filter "%s" does not exist.', $filter));
        }

        return $this->filters[$filter]->evaluate($value, $args);
    }