Passed
Push — master ( 9668d1...ad69c3 )
by Jan
04:30
created

TreeViewNodeIterator   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 6
dl 0
loc 29
rs 10
c 1
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A getChildren() 0 5 1
A hasChildren() 0 5 1
1
<?php
2
/**
3
 * This file is part of Part-DB (https://github.com/Part-DB/Part-DB-symfony).
4
 *
5
 * Copyright (C) 2019 Jan Böhmer (https://github.com/jbtronics)
6
 *
7
 * This program is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU General Public License
9
 * as published by the Free Software Foundation; either version 2
10
 * of the License, or (at your option) any later version.
11
 *
12
 * This program is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 * GNU General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU General Public License
18
 * along with this program; if not, write to the Free Software
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
20
 */
21
22
namespace App\Helpers\Trees;
23
24
use App\Helpers\TreeViewNode;
25
26
class TreeViewNodeIterator extends \ArrayIterator implements \RecursiveIterator
27
{
28
29
    /**
30
     * @param $nodes TreeViewNode[]
31
     */
32
    public function __construct($nodes)
33
    {
34
        parent::__construct($nodes);
35
    }
36
37
    /**
38
     * @inheritDoc
39
     */
40
    public function hasChildren()
41
    {
42
        /** @var TreeViewNode $element */
43
        $element = $this->current();
44
        return !empty($element->getNodes());
45
    }
46
47
    /**
48
     * @inheritDoc
49
     */
50
    public function getChildren()
51
    {
52
        /** @var TreeViewNode $element */
53
        $element = $this->current();
54
        return new TreeViewNodeIterator($element->getNodes());
55
    }
56
}