Completed
Pull Request — master (#348)
by
unknown
10:14
created

DisMaxQuery   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 55
Duplicated Lines 100 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 5
c 0
b 0
f 0
lcom 1
cbo 2
dl 55
loc 55
rs 10

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
<?php
2
3
/*
4
 * This file is part of the ONGR package.
5
 *
6
 * (c) NFQ Technologies UAB <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
declare(strict_types=1);
13
14
namespace ONGR\ElasticsearchDSL\Query\Compound;
15
16
use ONGR\ElasticsearchDSL\BuilderInterface;
17
use ONGR\ElasticsearchDSL\ParametersTrait;
18
19
/**
20
 * Represents Elasticsearch "dis_max" query.
21
 *
22
 * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-dis-max-query.html
23
 */
24
class DisMaxQuery implements BuilderInterface
25
{
26
    use ParametersTrait;
27
28
    private array $queries = [];
0 ignored issues
show
Bug introduced by
This code did not parse for me. Apparently, there is an error somewhere around this line:

Syntax error, unexpected T_ARRAY, expecting T_FUNCTION or T_CONST
Loading history...
29
30
    public function __construct(array $parameters = [])
31
    {
32
        $this->setParameters($parameters);
33
    }
34
35
    public function addQuery(BuilderInterface $query): static
36
    {
37
        $this->queries[] = $query;
38
39
        return $this;
40
    }
41
42
    public function getType(): string
43
    {
44
        return 'dis_max';
45
    }
46
47
    public function toArray(): array
48
    {
49
        $query = [];
50
        foreach ($this->queries as $type) {
51
            $query[] = $type->toArray();
52
        }
53
        $output = $this->processArray(['queries' => $query]);
54
55
        return [$this->getType() => $output];
56
    }
57
}
58