/**
  * {@inheritDoc}
  */
 public function visitDatasource(DatagridConfiguration $config, DatasourceInterface $datasource)
 {
     $filters = $this->getFiltersToApply($config);
     $values = $this->getValuesToApply($config);
     $datasourceAdapters = [];
     foreach ($datasource->getQueryBuilders() as $qb) {
         $datasourceAdapters[] = new OrmFilterDatasourceAdapter($qb);
     }
     foreach ($filters as $filter) {
         $value = isset($values[$filter->getName()]) ? $values[$filter->getName()] : false;
         if ($value === false) {
             continue;
         }
         $form = $filter->getForm();
         if (!$form->isSubmitted()) {
             $form->submit($value);
         }
         if (!$form->isValid()) {
             continue;
         }
         foreach ($datasourceAdapters as $datasourceAdapter) {
             $filter->apply($datasourceAdapter, $form->getData());
         }
     }
 }