Criteria for filtering Selectable collections.
@author Benjamin Eberlei <kontakt@beberlei.de> @since 2.3
Expanded class hierarchy of Criteria
class Criteria {
/**
* @var string
*/
const ASC = 'ASC';
/**
* @var string
*/
const DESC = 'DESC';
/**
* @var \Doctrine\Common\Collections\ExpressionBuilder
*/
private static $expressionBuilder;
/**
* @var \Doctrine\Common\Collections\Expr\Expression
*/
private $expression;
/**
* @var array|null
*/
private $orderings;
/**
* @var int
*/
private $firstResult;
/**
* @var int
*/
private $maxResults;
/**
* Creates an instance of the class.
*
* @return Criteria
*/
public static function create() {
return new static();
}
/**
* Return the expression builder.
*
* @return \Doctrine\Common\Collections\ExpressionBuilder
*/
public static function expr() {
if (self::$expressionBuilder === null) {
self::$expressionBuilder = new ExpressionBuilder();
}
return self::$expressionBuilder;
}
/**
* Construct new criteria
*
* @param Expression $expression
* @param array $orderings
* @param int $firstResult
* @param int $maxResults
*/
public function __construct(Expression $expression = null, array $orderings = null, $firstResult = null, $maxResults = null) {
$this->expression = $expression;
$this->orderings = $orderings;
$this->firstResult = $firstResult;
$this->maxResults = $maxResults;
}
/**
* Set the where expression to evaluate when this criteria is searched for.
*
* @param Expression
* @return Criteria
*/
public function where(Expression $expression) {
$this->expression = $expression;
return $this;
}
/**
* Append the where expression to evaluate when this criteria is searched for
* using an AND with previous expression.
*
* @param Expression
* @return Criteria
*/
public function andWhere(Expression $expression) {
if ($this->expression === null) {
return $this
->where($expression);
}
$this->expression = new CompositeExpression(CompositeExpression::TYPE_AND, array(
$this->expression,
$expression,
));
return $this;
}
/**
* Append the where expression to evaluate when this criteria is searched for
* using an OR with previous expression.
*
* @param Expression
* @return Criteria
*/
public function orWhere(Expression $expression) {
if ($this->expression === null) {
return $this
->where($expression);
}
$this->expression = new CompositeExpression(CompositeExpression::TYPE_OR, array(
$this->expression,
$expression,
));
return $this;
}
/**
* Get the expression attached to this criteria.
*
* @return Expression|null
*/
public function getWhereExpression() {
return $this->expression;
}
/**
* Get current orderings of this Criteria
*
* @return array
*/
public function getOrderings() {
return $this->orderings;
}
/**
* Set the ordering of the result of this criteria.
*
* Keys are field and values are the order, being either ASC or DESC.
*
* @see Criteria::ASC
* @see Criteria::DESC
*
* @param array
* @return Criteria
*/
public function orderBy(array $orderings) {
$this->orderings = $orderings;
return $this;
}
/**
* Get current first result option of the critera.
*
* @return firstResult.
*/
public function getFirstResult() {
return $this->firstResult;
}
/**
* Set number of first result that this criteria should return.
*
* @param firstResult the value to set.
* @return Criteria
*/
public function setFirstResult($firstResult) {
$this->firstResult = $firstResult;
return $this;
}
/**
* Get maxResults.
*
* @return maxResults.
*/
public function getMaxResults() {
return $this->maxResults;
}
/**
* Set maxResults.
*
* @param maxResults the value to set.
* @return Criteria
*/
public function setMaxResults($maxResults) {
$this->maxResults = $maxResults;
return $this;
}
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Criteria:: |
private | property | ||
Criteria:: |
private static | property | ||
Criteria:: |
private | property | ||
Criteria:: |
private | property | ||
Criteria:: |
private | property | ||
Criteria:: |
public | function | Append the where expression to evaluate when this criteria is searched for using an AND with previous expression. | |
Criteria:: |
constant | |||
Criteria:: |
public static | function | Creates an instance of the class. | |
Criteria:: |
constant | |||
Criteria:: |
public static | function | Return the expression builder. | |
Criteria:: |
public | function | Get current first result option of the critera. | |
Criteria:: |
public | function | Get maxResults. | |
Criteria:: |
public | function | Get current orderings of this Criteria | |
Criteria:: |
public | function | Get the expression attached to this criteria. | |
Criteria:: |
public | function | Set the ordering of the result of this criteria. | |
Criteria:: |
public | function | Append the where expression to evaluate when this criteria is searched for using an OR with previous expression. | |
Criteria:: |
public | function | Set number of first result that this criteria should return. | |
Criteria:: |
public | function | Set maxResults. | |
Criteria:: |
public | function | Set the where expression to evaluate when this criteria is searched for. | |
Criteria:: |
public | function | Construct new criteria |