summaryrefslogtreecommitdiffstats
path: root/library/Director/PropertyModifier/PropertyModifierNegateBoolean.php
blob: e60d692980084aecf93dca591e487978143dc7ee (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
<?php

namespace Icinga\Module\Director\PropertyModifier;

use Icinga\Module\Director\Hook\PropertyModifierHook;
use function ipl\Stdlib\get_php_type;

class PropertyModifierNegateBoolean extends PropertyModifierHook
{
    public function getName()
    {
        return 'Negate a boolean value';
    }

    public function transform($value)
    {
        if ($value === null) {
            return true;
        }
        if (! is_bool($value)) {
            throw new \InvalidArgumentException('Boolean expected, got ' . get_php_type($value));
        }

        return ! $value;
    }
}