/**
  * Replaces a single having clause because scalar types are not supported in doctrine paginator by default
  *
  * @param Query\Expr\Comparison $comparison
  * @param ColumnCollection      $columns
  * @param QueryBuilder          $queryBuilder
  */
 protected function replaceSingleHavingClause(Query\Expr\Comparison $comparison, ColumnCollection $columns, QueryBuilder $queryBuilder)
 {
     $source = $columns->get($comparison->getLeftExpr())->getSource();
     $param = $comparison->getRightExpr();
     $operator = $this->getOperator($comparison->getOperator());
     $expression = $queryBuilder->expr()->{$operator}($source, $param);
     $queryBuilder->andWhere($expression);
 }
 /**
  * {@inheritdoc}
  */
 public function setColumns(array $columns = [])
 {
     $collection = new ColumnCollection();
     foreach ($columns as $alias => $source) {
         $collection->add(new Column(['alias' => $alias, 'source' => $source]));
     }
     $this->dataset->setColumns($collection);
 }
 /**
  * Adds additional conditions to query
  *
  * @param QueryBuilder         $queryBuilder
  * @param ColumnCollection     $columns
  */
 protected function setColumnConditions(QueryBuilder $queryBuilder, ColumnCollection $columns)
 {
     foreach ($this->conditions->all() as $condition) {
         $column = $columns->get($condition->getIdentifier());
         $this->addColumnConditionToQueryBuilder($queryBuilder, $column, $condition);
     }
 }
 public function addColumn(ColumnInterface $column)
 {
     $this->columns->add($column);
 }