Completed
Pull Request — master (#555)
by Mantas
30:23
created

DocumentIterator   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 6
Bugs 0 Features 0
Metric Value
wmc 5
c 6
b 0
f 0
lcom 1
cbo 3
dl 0
loc 44
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 9 2
A getAggregation() 0 8 2
A convertDocument() 0 4 1
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
namespace ONGR\ElasticsearchBundle\Result;
13
14
use ONGR\ElasticsearchBundle\Result\Aggregation\ValueAggregation;
15
use ONGR\ElasticsearchBundle\Service\Manager;
16
17
/**
18
 * Class DocumentIterator.
19
 */
20
class DocumentIterator extends AbstractResultsIterator
21
{
22
    /**
23
     * @var array
24
     */
25
    private $aggregations;
0 ignored issues
show
Comprehensibility introduced by
Consider using a different property name as you override a private property of the parent class.
Loading history...
26
27
    /**
28
     * {@inheritdoc}
29
     */
30
    public function __construct(array $rawData, Manager $manager, array $scroll = [])
31
    {
32
        if (isset($rawData['aggregations'])) {
33
            $this->aggregations = $rawData['aggregations'];
34
            unset($rawData['aggregations']);
35
        }
36
37
        parent::__construct($rawData, $manager, $scroll);
38
    }
39
40
    /**
41
     * Get a specific aggregation by name. It fetches from the top level only.
42
     *
43
     * @param string $name
44
     *
45
     * @return ValueAggregation|null
46
     */
47
    public function getAggregation($name)
48
    {
49
        if (!isset($this->aggregations[$name])) {
50
            return null;
51
        }
52
53
        return new ValueAggregation($this->aggregations[$name]);
54
    }
55
56
    /**
57
     * {@inheritdoc}
58
     */
59
    protected function convertDocument(array $document)
60
    {
61
        return $this->getConverter()->convertToDocument($document, $this->getManager());
62
    }
63
}
64