/** * @param ContextInterface $context * @param \Iterator $iterator */ protected function setPredefinedFilters(ContextInterface $context, \Iterator $iterator) { $filters = null; if ($context->hasOption('filters')) { $filters = $context->getOption('filters'); $context->removeOption('filters'); } $complexFilters = null; if ($context->hasOption('complex_filters')) { $complexFilters = $context->getOption('complex_filters'); $context->removeOption('complex_filters'); } if ($filters || $complexFilters) { if ($iterator instanceof PredefinedFiltersAwareInterface) { $predefinedFilters = new BatchFilterBag((array) $filters, (array) $complexFilters); $iterator->setPredefinedFiltersBag($predefinedFilters); } else { throw new \LogicException('Iterator does not support predefined filters'); } } }