Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
ItemFieldDefinitions
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
2 / 2
3
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getFields
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3namespace Wikibase\Search\Elastic\Fields;
4
5use Wikibase\Repo\Search\Fields\FieldDefinitions;
6use Wikibase\Repo\Search\Fields\WikibaseIndexField;
7
8/**
9 * Search fields that are used for items.
10 *
11 * @license GPL-2.0-or-later
12 * @author Stas Malyshev
13 */
14class ItemFieldDefinitions implements FieldDefinitions {
15
16    /**
17     * @var FieldDefinitions[]
18     */
19    private $fieldDefinitions;
20
21    /**
22     * @param FieldDefinitions[] $fieldDefinitions
23     */
24    public function __construct( array $fieldDefinitions ) {
25        $this->fieldDefinitions = $fieldDefinitions;
26    }
27
28    /**
29     * @return WikibaseIndexField[]
30     */
31    public function getFields() {
32        $fields = [];
33
34        foreach ( $this->fieldDefinitions as $definitions ) {
35            $fields = array_merge( $fields, $definitions->getFields() );
36        }
37
38        $fields[SiteLinkCountField::NAME] = new SiteLinkCountField();
39
40        return $fields;
41    }
42
43}