Пример #1
0
 /**
  * {@inheritdoc}
  */
 public function process(ContextInterface $context)
 {
     /** @var GetListContext $context */
     $configOfFilters = $context->getConfigOfFilters();
     if (empty($configOfFilters)) {
         // a filters' configuration does not contains any data
         return;
     }
     if (!ConfigUtil::isExcludeAll($configOfFilters)) {
         // it seems that filters' configuration was not normalized
         throw new \RuntimeException(sprintf('Expected "all" exclusion policy for filters. Got: %s.', ConfigUtil::getExclusionPolicy($configOfFilters)));
     }
     $fields = ConfigUtil::getArrayValue($configOfFilters, ConfigUtil::FIELDS);
     $filters = $context->getFilters();
     foreach ($fields as $field => $fieldConfig) {
         if ($filters->has($field)) {
             continue;
         }
         $filter = $this->createFilter(ConfigUtil::getPropertyPath($fieldConfig, $field), $fieldConfig);
         if (null !== $filter) {
             $filters->add($field, $filter);
         }
     }
 }