Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
75.00% covered (warning)
75.00%
6 / 8
50.00% covered (danger)
50.00%
1 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
DescriptionsProviderFieldDefinitions
75.00% covered (warning)
75.00%
6 / 8
50.00% covered (danger)
50.00%
1 / 2
3.14
0.00% covered (danger)
0.00%
0 / 1
 __construct
60.00% covered (warning)
60.00%
3 / 5
0.00% covered (danger)
0.00%
0 / 1
2.26
 getFields
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace Wikibase\Search\Elastic\Fields;
4
5use MediaWiki\Config\ConfigFactory;
6use Wikibase\Repo\Search\Fields\FieldDefinitions;
7
8/**
9 * Definitions for any entity that has descriptions.
10 *
11 * @license GPL-2.0-or-later
12 * @author Stas Malyshev
13 */
14class DescriptionsProviderFieldDefinitions implements FieldDefinitions {
15
16    /**
17     * @var string[]
18     */
19    private $languageCodes;
20    /**
21     * @var array
22     */
23    private $stemmingSettings;
24
25    /**
26     * @param string[] $languageCodes
27     * @param ConfigFactory|null $configFactory
28     */
29    public function __construct( array $languageCodes, ?ConfigFactory $configFactory = null ) {
30        $this->languageCodes = $languageCodes;
31        if ( $configFactory === null ) {
32            $this->stemmingSettings = [];
33        } else {
34            $this->stemmingSettings = $configFactory->makeConfig( 'WikibaseCirrusSearch' )
35                ->get( 'UseStemming' );
36        }
37    }
38
39    /**
40     * @return WikibaseDescriptionsIndexField[]
41     */
42    public function getFields() {
43        return [
44            DescriptionsField::NAME => new DescriptionsField( $this->languageCodes, $this->stemmingSettings ),
45        ];
46    }
47
48}