diff options
Diffstat (limited to 'library/Director/PropertyModifier/PropertyModifierToInt.php')
-rw-r--r-- | library/Director/PropertyModifier/PropertyModifierToInt.php | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/library/Director/PropertyModifier/PropertyModifierToInt.php b/library/Director/PropertyModifier/PropertyModifierToInt.php new file mode 100644 index 0000000..dca7db9 --- /dev/null +++ b/library/Director/PropertyModifier/PropertyModifierToInt.php @@ -0,0 +1,31 @@ +<?php + +namespace Icinga\Module\Director\PropertyModifier; + +use Icinga\Module\Director\Data\InvalidDataException; +use Icinga\Module\Director\Hook\PropertyModifierHook; + +class PropertyModifierToInt extends PropertyModifierHook +{ + public function getName() + { + return 'Cast a string value to an Integer'; + } + + public function transform($value) + { + if ($value === null) { + return null; + } + + if (is_int($value)) { + return $value; + } + + if (is_string($value)) { + return (int) $value; + } + + throw new InvalidDataException('String, integer or null', $value); + } +} |