/**
  * @param \FSi\Component\DataGrid\Column\ColumnTypeInterface $column
  * @throws \InvalidArgumentException
  */
 private function validateOptions(ColumnTypeInterface $column)
 {
     $actions = $column->getOption('actions');
     if (!is_array($actions)) {
         throw new \InvalidArgumentException('Option "actions" must be an array.');
     }
     if (!count($actions)) {
         throw new \InvalidArgumentException('Option actions can\'t be empty.');
     }
     foreach ($actions as $actionName => &$options) {
         if (!is_array($options)) {
             throw new \InvalidArgumentException(sprintf('Options for action "%s" must be an array.', $actionName));
         }
         foreach ($options as $optionName => $value) {
             if (!in_array($optionName, $this->actionOptionsAvailable)) {
                 throw new \InvalidArgumentException(sprintf('Unknown option "%s" in action "%s".', $optionName, $actionName));
             }
         }
         foreach ($this->actionOptionsRequired as $optionName) {
             if (!array_key_exists($optionName, $options)) {
                 throw new \InvalidArgumentException(sprintf('Action "%s" require option "%s".', $actionName, $optionName));
             }
         }
         foreach ($this->actionOptionsDefault as $optionName => $value) {
             if (!array_key_exists($optionName, $options)) {
                 $options[$optionName] = $value;
             }
         }
         if (isset($options['parameters_values'])) {
             if (!is_array($options['parameters_values'])) {
                 throw new \InvalidArgumentException(sprintf('Action "%s" require option "parameters_values" as array.', $actionName, $optionName));
             }
         }
         if (isset($options['parameters'])) {
             if (!is_array($options['parameters'])) {
                 throw new \InvalidArgumentException(sprintf('Action "%s" require option "parameters" as array.', $actionName, $optionName));
             }
             $mappingFields = $column->getOption('field_mapping');
             foreach ($options['parameters'] as $mappingField => $routerParameter) {
                 if (!in_array($mappingField, $mappingFields, true)) {
                     throw new \InvalidArgumentException(sprintf('Unknown mapping_field "%s". Maybe you should consider using option "parameters_values"?', $mappingField));
                 }
             }
         }
     }
     $column->setOption('actions', $actions);
 }