Completed
Push — master ( c7b615...0cfdcd )
by Mantas
33:35
created

DocumentIterator::__construct()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 9
rs 9.6666
cc 2
eloc 5
nc 2
nop 3
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\AggregationValue;
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 AggregationValue|null
46
     */
47
    public function getAggregation($name)
48
    {
49
        if (!isset($this->aggregations[$name])) {
50
            return null;
51
        }
52
53
        return new AggregationValue($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