summaryrefslogtreecommitdiffstats
path: root/modules/monitoring/library/Monitoring/Data/ColumnFilterIterator.php
blob: 0ad051b9be960c44ba20d0c49379b1803ef48ea4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
/* Icinga Web 2 | (c) 2015 Icinga Development Team | GPLv2+ */

namespace Icinga\Module\Monitoring\Data;

use ArrayIterator;
use FilterIterator;
use Zend_Db_Expr;

/**
 * Iterator over non-pseudo monitoring query columns
 */
class ColumnFilterIterator extends FilterIterator
{
    /**
     * Create a new ColumnFilterIterator
     *
     * @param array $columns
     */
    public function __construct(array $columns)
    {
        parent::__construct(new ArrayIterator($columns));
    }

    public function accept(): bool
    {
        $column = $this->current();
        return ! ($column instanceof Zend_Db_Expr || $column === '(NULL)');
    }
}