Esempio n. 1
0
 /**
  * Retorna uma string com a relação de colunas
  *
  * @return string
  * */
 public function renderColumns()
 {
     $columns = array();
     foreach ($this->_entity->columns() as $column) {
         if (FALSE == isset($column->database)) {
             // @codeCoverageIgnoreStart
             continue;
             // @codeCoverageIgnoreEnd
         }
         $column = Column::factory($column->name, $this->_entity, 'database');
         if ($column) {
             $columns[] = $column->render();
         }
     }
     return implode(', ', $columns);
 }
Esempio n. 2
0
 /**
  * Construtor.
  *
  * Se informado uma entidade, todas as colunas de Entity, referente a banco de dados, serão
  * usadas para compor a relação de colunas do Select.
  *
  * @param Entity $ntity
  * */
 public function __construct(Entity $entity = NULL)
 {
     if (NULL === $entity) {
         return;
     }
     # define a entidade trabalho
     $this->from($entity);
     # define as colunas
     if (NULL != $entity) {
         foreach ($entity->columns() as $column) {
             $col = NULL;
             try {
                 $col = Column::factory($column->name, $entity, 'database');
             } catch (IllegalArgumentException $iae) {
             }
             if (NULL != $col) {
                 $this->_columns[$column->name] = $col;
             }
         }
     }
 }
Esempio n. 3
0
 /**
  * Adiciona uma coluna a Query
  *
  * <p>
  *    Sendo $coluna uma string, sera verificado em Entity a existencia de uma coluna que corresponda ao string
  *    informado e se nenhuma correpondencia for encontrada uma exception do tioi IllegalArgumentException sera
  *    lancada.
  * </p>
  * <p>
  *    Sendo $column do tipo database/Column esta sera adicionado diretamente
  * </p>
  *
  * @example database::Query::addColumn
  * <code>
  * <?php
  *   # vide Query::factory
  *   $query = Query::factory(...);
  *
  *   # adiciona uma coluna a query informando o nome da mesma
  *   $query->addColumn('columnNam');
  *
  *   # adiciona uma coluna informando um objeto
  *   $column = Column::factory(...);
  *   $query->addColumn($column);
  * ?>
  * </code>
  *
  * @override
  * <ul>
  *     <li>Query::addColumn(string $column)</li>
  *     <li>Query::addColumn(Column $column)</li>
  * </ul>
  *
  * @param $column
  * @return Query
  * @throws IllegalArgumentException
  * */
 public function addColumn($column)
 {
     if (TRUE == is_string($column)) {
         $column = Column::factory($column, $this->_entity, 'database');
     }
     $this->_select->addColumn($column);
     return $this;
 }