Beispiel #1
0
 /**
  * {@inheritDoc}
  */
 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());
 }