CustomVariable: render expressions in Arrays...
...and introduce a new abstract method
This commit is contained in:
parent
d32f22d493
commit
a6928a8bc1
|
@ -4,6 +4,7 @@ namespace Icinga\Module\Director\CustomVariable;
|
|||
|
||||
use Icinga\Exception\ProgrammingError;
|
||||
use Icinga\Module\Director\Db\Cache\PrefetchCache;
|
||||
use Icinga\Module\Director\IcingaConfig\IcingaConfigHelper as c;
|
||||
use Icinga\Module\Director\IcingaConfig\IcingaConfigRenderer;
|
||||
use Exception;
|
||||
|
||||
|
@ -81,6 +82,8 @@ abstract class CustomVariable implements IcingaConfigRenderer
|
|||
|
||||
abstract public function getValue();
|
||||
|
||||
abstract public function toConfigString($renderExpressions = false);
|
||||
|
||||
public function isNew()
|
||||
{
|
||||
return ! $this->loadedFromDb;
|
||||
|
|
|
@ -69,9 +69,14 @@ class CustomVariableArray extends CustomVariable
|
|||
return $this;
|
||||
}
|
||||
|
||||
public function toConfigString()
|
||||
public function toConfigString($renderExpressions = false)
|
||||
{
|
||||
return c::renderArray($this->value);
|
||||
$parts = array();
|
||||
foreach ($this->value as $k => $v) {
|
||||
$parts[] = $v->toConfigString($renderExpressions);
|
||||
}
|
||||
|
||||
return c::renderEscapedArray($parts);
|
||||
}
|
||||
|
||||
public function __clone()
|
||||
|
|
|
@ -41,7 +41,7 @@ class CustomVariableBoolean extends CustomVariable
|
|||
return $this;
|
||||
}
|
||||
|
||||
public function toConfigString()
|
||||
public function toConfigString($renderExpressions = false)
|
||||
{
|
||||
return $this->value ? 'true' : 'false';
|
||||
}
|
||||
|
|
|
@ -109,8 +109,9 @@ class CustomVariableDictionary extends CustomVariable implements Countable
|
|||
return $this->value[$key];
|
||||
}
|
||||
|
||||
public function toConfigString()
|
||||
public function toConfigString($renderExpressions = false)
|
||||
{
|
||||
// TODO
|
||||
return c::renderDictionary($this->value);
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ class CustomVariableNull extends CustomVariable
|
|||
return $this;
|
||||
}
|
||||
|
||||
public function toConfigString()
|
||||
public function toConfigString($renderExpressions = false)
|
||||
{
|
||||
return 'null';
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ class CustomVariableNumber extends CustomVariable
|
|||
return $this;
|
||||
}
|
||||
|
||||
public function toConfigString()
|
||||
public function toConfigString($renderExpressions = false)
|
||||
{
|
||||
if (is_int($this->value)) {
|
||||
return (string) $this->value;
|
||||
|
|
|
@ -123,15 +123,20 @@ class IcingaConfigHelper
|
|||
$data[] = self::renderString($entry);
|
||||
}
|
||||
}
|
||||
$str = '[ ' . implode(', ', $data) . ' ]';
|
||||
|
||||
return static::renderEscapedArray($data);
|
||||
}
|
||||
|
||||
public static function renderEscapedArray($array)
|
||||
{
|
||||
$str = '[ ' . implode(', ', $array) . ' ]';
|
||||
|
||||
if (strlen($str) < 60) {
|
||||
return $str;
|
||||
}
|
||||
|
||||
// Prefix for toConfigString?
|
||||
return "[\n " . implode(",\n ", $data) . "\n]";
|
||||
|
||||
return "[\n " . implode(",\n ", $array) . "\n]";
|
||||
}
|
||||
|
||||
public static function renderDictionary($dictionary)
|
||||
|
|
Loading…
Reference in New Issue