eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\DateMetadata::handle PHP Method

handle() public method

accept() must be called before calling this method.
public handle ( CriteriaConverter $converter, eZ\Publish\Core\Persistence\Database\SelectQuery $query, eZ\Publish\API\Repository\Values\Content\Query\Criterion $criterion, array $languageSettings ) : eZ\Publish\Core\Persistence\Database\Expression
$converter eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriteriaConverter
$query eZ\Publish\Core\Persistence\Database\SelectQuery
$criterion eZ\Publish\API\Repository\Values\Content\Query\Criterion
$languageSettings array
return eZ\Publish\Core\Persistence\Database\Expression
    public function handle(CriteriaConverter $converter, SelectQuery $query, Criterion $criterion, array $languageSettings)
    {
        $column = $this->dbHandler->quoteColumn($criterion->target === Criterion\DateMetadata::MODIFIED ? 'modified' : 'published', 'ezcontentobject');
        switch ($criterion->operator) {
            case Criterion\Operator::IN:
                return $query->expr->in($column, $criterion->value);
            case Criterion\Operator::BETWEEN:
                return $query->expr->between($column, $query->bindValue($criterion->value[0]), $query->bindValue($criterion->value[1]));
            case Criterion\Operator::EQ:
            case Criterion\Operator::GT:
            case Criterion\Operator::GTE:
            case Criterion\Operator::LT:
            case Criterion\Operator::LTE:
                $operatorFunction = $this->comparatorMap[$criterion->operator];
                return $query->expr->{$operatorFunction}($column, $query->bindValue(reset($criterion->value)));
            default:
                throw new RuntimeException("Unknown operator '{$criterion->operator}' for DateMetadata criterion handler.");
        }
    }
DateMetadata