engineResolver = $engineResolver; $this->objectManager = $objectManager; $this->data = $data; } /** * {@inheritdoc} */ public function isResultsCountEnabled() { return $this->getDataProvider()->isResultsCountEnabled(); } /** * {@inheritdoc} */ public function getItems(QueryInterface $query) { return $this->getDataProvider()->getItems($query); } /** * Returns DataProvider for SuggestedQueries * * @return SuggestedQueriesInterface|SuggestedQueriesInterface[] * @throws \Exception */ private function getDataProvider() { if (empty($this->dataProvider)) { $currentEngine = $this->engineResolver->getCurrentSearchEngine(); $this->dataProvider = $this->objectManager->create($this->data[$currentEngine]); if (!$this->dataProvider instanceof SuggestedQueriesInterface) { throw new \InvalidArgumentException( 'Data provider must implement \Magento\AdvancedSearch\Model\SuggestedQueriesInterface' ); } } return $this->dataProvider; } }