Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 21
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
EntitySearchHelperFactory
0.00% covered (danger)
0.00%
0 / 21
0.00% covered (danger)
0.00%
0 / 2
6
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 newEntitySearchHelper
0.00% covered (danger)
0.00%
0 / 20
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Wikibase\Search\Elastic;
4
5use MediaWiki\Language\Language;
6use MediaWiki\Request\WebRequest;
7use Wikibase\DataModel\Entity\EntityIdParser;
8use Wikibase\DataModel\Services\Lookup\EntityLookup;
9use Wikibase\DataModel\Services\Lookup\TermLookup;
10use Wikibase\Lib\LanguageFallbackChainFactory;
11use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookup;
12use Wikibase\Repo\Api\CombinedEntitySearchHelper;
13use Wikibase\Repo\Api\EntityIdSearchHelper;
14use Wikibase\Repo\Api\EntitySearchHelper;
15use Wikibase\Repo\Domains\Search\Infrastructure\DataAccess\EntitySearchHelperFactory as EntitySearchHelperFactoryInterface;
16
17/**
18 * @license GPL-2.0-or-later
19 */
20class EntitySearchHelperFactory implements EntitySearchHelperFactoryInterface {
21
22    public function __construct(
23        private readonly EntityIdParser $entityIdParser,
24        private readonly LanguageFallbackChainFactory $languageFallbackChainFactory,
25        private readonly EntityLookup $entityLookup,
26        private readonly TermLookup $termLookup,
27        private readonly array $enabledEntityTypes,
28        private readonly array $contentModelMappings,
29    ) {
30    }
31
32    public function newEntitySearchHelper( string $entityType, Language $language, WebRequest $request ): EntitySearchHelper {
33        return new CombinedEntitySearchHelper(
34            [
35                new EntityIdSearchHelper(
36                    $this->entityLookup,
37                    $this->entityIdParser,
38                    new LanguageFallbackLabelDescriptionLookup(
39                        $this->termLookup,
40                        $this->languageFallbackChainFactory->newFromLanguage( $language )
41                    ),
42                    $this->enabledEntityTypes
43                ),
44                new EntitySearchElastic(
45                    $this->languageFallbackChainFactory,
46                    $this->entityIdParser,
47                    $language,
48                    $this->contentModelMappings,
49                    $request
50                ),
51            ]
52        );
53    }
54
55}