Source of file Operator.php
Size: 5,591 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Db/Sql/Predicate/Operator.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 | <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Db\Sql\Predicate; use Zend\Db\Sql\Exception; class Operator implements PredicateInterface { const OPERATOR_EQUAL_TO = '='; const OP_EQ = '='; const OPERATOR_NOT_EQUAL_TO = '!='; const OP_NE = '!='; const OPERATOR_LESS_THAN = '<'; const OP_LT = '<'; const OPERATOR_LESS_THAN_OR_EQUAL_TO = '<='; const OP_LTE = '<='; const OPERATOR_GREATER_THAN = '>'; const OP_GT = '>'; const OPERATOR_GREATER_THAN_OR_EQUAL_TO = '>='; const OP_GTE = '>='; protected $allowedTypes = array( self::TYPE_IDENTIFIER, self::TYPE_VALUE, ); protected $left = null; protected $leftType = self::TYPE_IDENTIFIER; protected $operator = self::OPERATOR_EQUAL_TO; protected $right = null; protected $rightType = self::TYPE_VALUE; /** * Constructor * * @param int|float|bool|string $left * @param string $operator * @param int|float|bool|string $right * @param string $leftType TYPE_IDENTIFIER or TYPE_VALUE by default TYPE_IDENTIFIER {@see allowedTypes} * @param string $rightType TYPE_IDENTIFIER or TYPE_VALUE by default TYPE_VALUE {@see allowedTypes} */ public function __construct($left = null, $operator = self::OPERATOR_EQUAL_TO, $right = null, $leftType = self::TYPE_IDENTIFIER, $rightType = self::TYPE_VALUE) { if ($left !== null) { $this->setLeft($left); } if ($operator !== self::OPERATOR_EQUAL_TO) { $this->setOperator($operator); } if ($right !== null) { $this->setRight($right); } if ($leftType !== self::TYPE_IDENTIFIER) { $this->setLeftType($leftType); } if ($rightType !== self::TYPE_VALUE) { $this->setRightType($rightType); } } /** * Set left side of operator * * @param int|float|bool|string $left * @return Operator */ public function setLeft($left) { $this->left = $left; return $this; } /** * Get left side of operator * * @return int|float|bool|string */ public function getLeft() { return $this->left; } /** * Set parameter type for left side of operator * * @param string $type TYPE_IDENTIFIER or TYPE_VALUE {@see allowedTypes} * @throws Exception\InvalidArgumentException * @return Operator */ public function setLeftType($type) { if (!in_array($type, $this->allowedTypes)) { throw new Exception\InvalidArgumentException(sprintf( 'Invalid type "%s" provided; must be of type "%s" or "%s"', $type, __CLASS__ . '::TYPE_IDENTIFIER', __CLASS__ . '::TYPE_VALUE' )); } $this->leftType = $type; return $this; } /** * Get parameter type on left side of operator * * @return string */ public function getLeftType() { return $this->leftType; } /** * Set operator string * * @param string $operator * @return Operator */ public function setOperator($operator) { $this->operator = $operator; return $this; } /** * Get operator string * * @return string */ public function getOperator() { return $this->operator; } /** * Set right side of operator * * @param int|float|bool|string $value * @return Operator */ public function setRight($value) { $this->right = $value; return $this; } /** * Get right side of operator * * @return int|float|bool|string */ public function getRight() { return $this->right; } /** * Set parameter type for right side of operator * * @param string $type TYPE_IDENTIFIER or TYPE_VALUE {@see allowedTypes} * @throws Exception\InvalidArgumentException * @return Operator */ public function setRightType($type) { if (!in_array($type, $this->allowedTypes)) { throw new Exception\InvalidArgumentException(sprintf( 'Invalid type "%s" provided; must be of type "%s" or "%s"', $type, __CLASS__ . '::TYPE_IDENTIFIER', __CLASS__ . '::TYPE_VALUE' )); } $this->rightType = $type; return $this; } /** * Get parameter type on right side of operator * * @return string */ public function getRightType() { return $this->rightType; } /** * Get predicate parts for where statement * * @return array */ public function getExpressionData() { return array(array( '%s ' . $this->operator . ' %s', array($this->left, $this->right), array($this->leftType, $this->rightType) )); } } |