diff --git a/library/Director/Data/Db/DbDataFormatter.php b/library/Director/Data/Db/DbDataFormatter.php new file mode 100644 index 00000000..d6e4eeb5 --- /dev/null +++ b/library/Director/Data/Db/DbDataFormatter.php @@ -0,0 +1,26 @@ +propertyIsBoolean($key)) { - return parent::set($key, $this->normalizeBoolean($value)); + return parent::set($key, DbDataFormatter::normalizeBoolean($value)); } // e.g. zone_id @@ -793,27 +793,9 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer return $this->ranges()->getValues(); } - protected function normalizeBoolean($value) - { - if ($value === 'y' || $value === '1' || $value === true || $value === 1) { - return 'y'; - } - if ($value === 'n' || $value === '0' || $value === false || $value === 0) { - return 'n'; - } - if ($value === '' || $value === null) { - return null; - } - - throw new InvalidArgumentException(sprintf( - 'Got invalid boolean: %s', - var_export($value, 1) - )); - } - protected function setDisabled($disabled) { - return parent::reallySet('disabled', $this->normalizeBoolean($disabled)); + return $this->reallySet('disabled', DbDataFormatter::normalizeBoolean($disabled)); } public function isDisabled()