public function addAutoTablesConfig(AutoTablesConfiguration $config, $selector)
 {
     $columnOverwrite = util::array_get($config->getColumns()[$selector]);
     if ($columnOverwrite) {
         $this->readOnly = util::array_get($columnOverwrite['readOnly'], $this->readOnly);
         $this->name = util::array_get($columnOverwrite['name'], $this->name);
         $this->type = util::array_get($columnOverwrite['type'], $this->type);
         $this->order = util::array_get($columnOverwrite['order'], $this->order);
         $this->ignore = util::array_get($columnOverwrite['ignore'], $this->ignore);
         $this->visible = util::array_get($columnOverwrite['visible'], $this->visible);
         $this->viewType = util::array_get($columnOverwrite['viewType'], $this->viewType);
         $this->values = util::array_get($columnOverwrite['values'], $this->values);
         $initializer = util::array_get($columnOverwrite['initializer'], null);
         if ($initializer) {
             if (!$this->initializer) {
                 $this->initializer = new InitializerInfo();
             }
             $this->initializer->addInitializerConfig($initializer);
         }
     }
 }
 private function mergeColumnsConfiguration(AutoTablesConfiguration $config, $args)
 {
     $newColArgs = util::array_get($args['columns'], array());
     foreach ($newColArgs as $newColArg) {
         $selector = $newColArg['selector'];
         Ensure::isNotEmpty($selector, 'Missing selector in column configuration');
         $colArg = util::array_get($config->getColumns()[$selector], null);
         if ($colArg) {
             // overwrite the settings
             $config->putColumn($selector, array_merge($colArg, $newColArg));
         } else {
             // define a new entry
             $config->putColumn($selector, $newColArg);
         }
     }
     return $config;
 }