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@2: const EQ = '='; Chris@2: const NEQ = '<>'; Chris@2: const LT = '<'; Chris@2: const LTE = '<='; Chris@2: const GT = '>'; Chris@2: const GTE = '>='; Chris@2: const IS = '='; // no difference with EQ Chris@2: const IN = 'IN'; Chris@2: const NIN = 'NIN'; Chris@2: const CONTAINS = 'CONTAINS'; Chris@2: const MEMBER_OF = 'MEMBER_OF'; Chris@2: const STARTS_WITH = 'STARTS_WITH'; Chris@2: 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: }