IcingaObject: add helper for booleans
This commit is contained in:
parent
5f9fb8eb83
commit
280cd2b7b3
|
@ -30,6 +30,8 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer
|
||||||
|
|
||||||
protected $type;
|
protected $type;
|
||||||
|
|
||||||
|
protected $booleans = array();
|
||||||
|
|
||||||
private $vars;
|
private $vars;
|
||||||
|
|
||||||
private $groups;
|
private $groups;
|
||||||
|
@ -42,6 +44,11 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer
|
||||||
|
|
||||||
private $arguments;
|
private $arguments;
|
||||||
|
|
||||||
|
public function propertyIsBoolean($property)
|
||||||
|
{
|
||||||
|
return array_key_exists($property, $this->booleans);
|
||||||
|
}
|
||||||
|
|
||||||
public function supportsCustomVars()
|
public function supportsCustomVars()
|
||||||
{
|
{
|
||||||
return $this->supportsCustomVars;
|
return $this->supportsCustomVars;
|
||||||
|
@ -120,6 +127,19 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->propertyIsBoolean($key) && $value !== null) {
|
||||||
|
if ($value === 'y' || $value === '1' || $value === true || $value === 1) {
|
||||||
|
return parent::set($key, 'y');
|
||||||
|
} elseif ($value === 'n' || $value === '0' || $value === false || $value === 0) {
|
||||||
|
return parent::set($key, 'n');
|
||||||
|
} else {
|
||||||
|
throw new ProgrammingError(
|
||||||
|
'Got invalid boolean: %s',
|
||||||
|
var_export($value, 1)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return parent::set($key, $value);
|
return parent::set($key, $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -577,7 +597,16 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer
|
||||||
if (method_exists($this, $method)) {
|
if (method_exists($this, $method)) {
|
||||||
$out .= $this->$method($value);
|
$out .= $this->$method($value);
|
||||||
} else {
|
} else {
|
||||||
$out .= c::renderKeyValue($key, c::renderString($value));
|
if ($this->propertyIsBoolean($key)) {
|
||||||
|
if ($value !== $this->defaultProperties[$key]) {
|
||||||
|
$out .= c::renderKeyValue(
|
||||||
|
$this->booleans[$key],
|
||||||
|
c::renderBoolean($value)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$out .= c::renderKeyValue($key, c::renderString($value));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue