Sylius\Bundle\GridBundle\Doctrine\PHPCRODM\ExpressionVisitor::walkComparison PHP Method

walkComparison() public method

{@inheritDoc}
public walkComparison ( Comparison $comparison, Doctrine\ODM\PHPCR\Query\Builder\AbstractNode $parentNode )
$comparison Doctrine\Common\Collections\Expr\Comparison
$parentNode Doctrine\ODM\PHPCR\Query\Builder\AbstractNode
    public function walkComparison(Comparison $comparison, AbstractNode $parentNode)
    {
        $field = $comparison->getField();
        $value = $comparison->getValue()->getValue();
        // shortcut for walkValue()
        switch ($comparison->getOperator()) {
            case Comparison::EQ:
                return $parentNode->eq()->field($this->getField($field))->literal($value)->end();
            case Comparison::NEQ:
                return $parentNode->neq()->field($this->getField($field))->literal($value)->end();
            case Comparison::LT:
                return $parentNode->lt()->field($this->getField($field))->literal($value)->end();
            case Comparison::LTE:
                return $parentNode->lte()->field($this->getField($field))->literal($value)->end();
            case Comparison::GT:
                return $parentNode->gt()->field($this->getField($field))->literal($value)->end();
            case Comparison::GTE:
                return $parentNode->gte()->field($this->getField($field))->literal($value)->end();
            case Comparison::IN:
                return $this->getInConstraint($parentNode, $field, $value);
            case Comparison::NIN:
                $node = $parentNode->not();
                $this->getInConstraint($node, $field, $value);
                return $node->end();
            case Comparison::CONTAINS:
                return $parentNode->like()->field($this->getField($field))->literal($value)->end();
            case ExtraComparison::NOT_CONTAINS:
                return $parentNode->not()->like()->field($this->getField($field))->literal($value)->end()->end();
            case ExtraComparison::IS_NULL:
                return $parentNode->not()->fieldIsset($this->getField($field))->end();
            case ExtraComparison::IS_NOT_NULL:
                return $parentNode->fieldIsset($this->getField($field));
        }
        throw new \RuntimeException('Unknown comparison operator: ' . $comparison->getOperator());
    }