/**
  * @return JoinCapableQuery
  **/
 public function process(Criteria $criteria, JoinCapableQuery $query)
 {
     Assert::isNotNull($this->property);
     return $query->get(SQLFunction::create($this->getFunctionName(), $criteria->getDao()->guessAtom($this->property, $query))->setAlias($this->alias));
 }
 /**
  * @return JoinCapableQuery
  **/
 public function process(Criteria $criteria, JoinCapableQuery $query)
 {
     Assert::isNotNull($this->property);
     return $query->get($criteria->getDao()->guessAtom($this->property, $query), $this->alias);
 }
 /**
  * @return JoinCapableQuery
  **/
 public function process(Criteria $criteria, JoinCapableQuery $query)
 {
     return $query->having($this->logic->toMapped($criteria->getDao(), $query));
 }
 /**
  * @throws WrongArgumentException
  * @return UnifiedContainer
  **/
 public function setCriteria(Criteria $criteria)
 {
     Assert::isTrue($criteria->getDao() === null || $criteria->getDao() === $this->dao, "criteria's dao doesn't match container's one");
     if (!$criteria->getDao()) {
         $criteria->setDao($this->dao);
     }
     $this->worker->setCriteria($criteria);
     return $this;
 }
 /**
  * @return SQLFunction
  **/
 protected function getFunction(Criteria $criteria, JoinCapableQuery $query)
 {
     Assert::isNotNull($this->property);
     return SQLFunction::create('count', $this->property ? $criteria->getDao()->guessAtom($this->property, $query) : $criteria->getDao()->getIdName());
 }
 /**
  * @return JoinCapableQuery
  **/
 public function process(Criteria $criteria, JoinCapableQuery $query)
 {
     return $query->get($this->mappable->toMapped($criteria->getDao(), $query), $this->alias);
 }