public function evaluate($values)
 {
     $value = $this->getParameter(1)->evaluate($values);
     if (is_numeric($value)) {
         return -$value;
     } else {
         return parent::evaluate($values);
     }
 }
 /**
  * @return OrderBy
  **/
 public function evaluate($values)
 {
     return parent::evaluate($values)->setDirection($this->direction);
 }
 protected static function checkExpression(OqlQueryExpression $expression)
 {
     if (!$expression instanceof OqlInExpression) {
         Assert::isInstance($expression->getClassName(), 'LogicalObject');
     }
 }
 /**
  * @return OqlQueryExpression
  **/
 protected function makeQueryExpression($className)
 {
     $expression = OqlQueryExpression::create()->setClassName($className);
     $arguments = func_get_args();
     reset($arguments);
     $argument = next($arguments);
     while ($argument) {
         $expression->addParameter($this->makeQueryParameter($argument));
         $argument = next($arguments);
     }
     return $expression;
 }
 protected static function checkExpression(OqlQueryExpression $expression)
 {
     Assert::isInstance($expression->getClassName(), 'HavingProjection');
 }