/**
  * Funkce pro export pole s informacemi z DataDictionary a TransformationDictionary
  * @param Datasource $datasource
  * @param Metasource|null $metasource
  * @return array
  */
 public function exportDictionariesArr(Datasource $datasource, Metasource $metasource = null)
 {
     $this->databasesFacade->openDatabase($datasource->getDbConnection());
     $output = array('dataDictionary' => array(), 'transformationDictionary' => array(), 'recordCount' => $this->databasesFacade->getRowsCount($datasource->dbTable));
     #region datafields
     foreach ($datasource->datasourceColumns as $datasourceColumn) {
         $output['dataDictionary'][$datasourceColumn->name] = $datasourceColumn->type == DatasourceColumn::TYPE_STRING ? 'string' : 'integer';
         //TODO kontrola, jaké má smysl vracet datové typy....
     }
     #endregion datafields
     #region atributy
     if (!empty($metasource) && !empty($metasource->attributes)) {
         $this->databasesFacade->openDatabase($metasource->getDbConnection());
         foreach ($metasource->attributes as $attribute) {
             $valuesArr = array();
             try {
                 $valuesStatistics = $this->databasesFacade->getColumnValuesStatistic($metasource->attributesTable, $attribute->name, true);
                 if (!empty($valuesStatistics->valuesArr)) {
                     foreach ($valuesStatistics->valuesArr as $value => $count) {
                         $valuesArr[] = $value;
                     }
                 }
             } catch (\Exception $e) {
             }
             $output['transformationDictionary'][$attribute->name] = array('choices' => $valuesArr);
         }
     }
     #endregion atributy
     return $output;
 }