AggregationResolver.php 895 B

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Search\Adapter\Aggregation;
  7. use Magento\Framework\Search\RequestInterface;
  8. class AggregationResolver implements AggregationResolverInterface
  9. {
  10. /**
  11. * @var AggregationResolverInterface[]
  12. */
  13. private $resolvers;
  14. /**
  15. * @param AggregationResolverInterface[] $resolvers
  16. */
  17. public function __construct(array $resolvers = [])
  18. {
  19. $this->resolvers = $resolvers;
  20. }
  21. /**
  22. * {@inheritdoc}
  23. */
  24. public function resolve(RequestInterface $request, array $documentIds)
  25. {
  26. $aggregations = isset($this->resolvers[$request->getIndex()])
  27. ? $this->resolvers[$request->getIndex()]->resolve($request, $documentIds)
  28. : $request->getAggregation();
  29. return $aggregations;
  30. }
  31. }