Chris@0: . Chris@0: */ Chris@0: Chris@0: namespace Doctrine\Common\Collections\Expr; Chris@0: Chris@0: /** Chris@0: * Comparison of a field with a value by the given operator. Chris@0: * Chris@0: * @author Benjamin Eberlei Chris@0: * @since 2.3 Chris@0: */ Chris@0: class Comparison implements Expression Chris@0: { Chris@12: const EQ = '='; Chris@12: const NEQ = '<>'; Chris@12: const LT = '<'; Chris@12: const LTE = '<='; Chris@12: const GT = '>'; Chris@12: const GTE = '>='; Chris@12: const IS = '='; // no difference with EQ Chris@12: const IN = 'IN'; Chris@12: const NIN = 'NIN'; Chris@12: const CONTAINS = 'CONTAINS'; Chris@12: const MEMBER_OF = 'MEMBER_OF'; Chris@12: const STARTS_WITH = 'STARTS_WITH'; Chris@12: const ENDS_WITH = 'ENDS_WITH'; Chris@0: /** Chris@0: * @var string Chris@0: */ Chris@0: private $field; Chris@0: Chris@0: /** Chris@0: * @var string Chris@0: */ Chris@0: private $op; Chris@0: Chris@0: /** Chris@0: * @var Value Chris@0: */ Chris@0: private $value; Chris@0: Chris@0: /** Chris@0: * @param string $field Chris@0: * @param string $operator Chris@0: * @param mixed $value Chris@0: */ Chris@0: public function __construct($field, $operator, $value) Chris@0: { Chris@0: if ( ! ($value instanceof Value)) { Chris@0: $value = new Value($value); Chris@0: } Chris@0: Chris@0: $this->field = $field; Chris@0: $this->op = $operator; Chris@0: $this->value = $value; Chris@0: } Chris@0: Chris@0: /** Chris@0: * @return string Chris@0: */ Chris@0: public function getField() Chris@0: { Chris@0: return $this->field; Chris@0: } Chris@0: Chris@0: /** Chris@0: * @return Value Chris@0: */ Chris@0: public function getValue() Chris@0: { Chris@0: return $this->value; Chris@0: } Chris@0: Chris@0: /** Chris@0: * @return string Chris@0: */ Chris@0: public function getOperator() Chris@0: { Chris@0: return $this->op; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritDoc} Chris@0: */ Chris@0: public function visit(ExpressionVisitor $visitor) Chris@0: { Chris@0: return $visitor->walkComparison($this); Chris@0: } Chris@0: }