private static function getForeignColsSelection($class, $selectedColumns, $refTables)
 {
     $tableMap = afMetaDb::getTableMap($class);
     $duplication = false;
     $joined = array();
     $selectedFCols = array();
     $excludedFCols = array();
     foreach ($tableMap->getColumns() as $col) {
         $relatedTable = $col->getRelatedTableName();
         if ($relatedTable) {
             if (in_array($relatedTable, $refTables) || in_array(strtolower($col->getName()), $selectedColumns)) {
                 if (isset($joined[$relatedTable])) {
                     // It prevents multiple joins to the same table.
                     $duplication = true;
                     $excludedFCols[] = $col;
                 } else {
                     $joined[$relatedTable] = true;
                     $selectedFCols[] = $col;
                 }
             } else {
                 $excludedFCols[] = $col;
             }
         }
     }
     return array($duplication, $selectedFCols, $excludedFCols);
 }
 private function prepareGetters()
 {
     $tableMap = afMetaDb::getTableMap($this->class);
     $getters = array();
     foreach ($this->selectedColumns as $column) {
         $getters[$column] = $this->createGetter($tableMap, $column);
     }
     return $getters;
 }
 public function setSort($column, $sortDir = 'ASC')
 {
     $this->initialized = false;
     $tableMap = afMetaDb::getTableMap($this->class);
     $this->sortDir = $sortDir;
     if (!StringUtil::isIn('.', $column) && $tableMap->hasColumn($column)) {
         $this->sortColumn = $column;
         $this->sortColumn = $tableMap->getColumn($column)->getFullyQualifiedName();
     } else {
         $this->sortColumn = false;
     }
 }