Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

glpi / Vigilo / VigiloArg.php @ 0d761a49

History | View | Annotate | Download (1.3 KB)

1 bef4271a Thibault Louet
<?php
2
3
class VigiloArg extends VigiloXml
4
{
5
    protected $name;
6
    protected $values;
7
8
    public function __construct($name, $values)
9
    {
10
        if (is_array($values)) {
11
            $new_values = array();
12
            foreach ($values as $value) {
13 a5c9df40 Thibault Louet
                if (is_string($value)) {
14 bef4271a Thibault Louet
                    $new_values[] = new VigiloItem($value);
15 a5c9df40 Thibault Louet
                } elseif (!is_a($value, 'VigiloItem')) {
16 bef4271a Thibault Louet
                    throw new \RuntimeException();
17 a5c9df40 Thibault Louet
                } else {
18 bef4271a Thibault Louet
                    $new_values[] = $value;
19 a5c9df40 Thibault Louet
                }
20 bef4271a Thibault Louet
            }
21
            $values = $new_values;
22 a5c9df40 Thibault Louet
        } elseif (!is_string($values) && !is_int($values)
23
            && !is_bool($values) && !is_float($values)
24
        ) {
25 bef4271a Thibault Louet
            throw new \RuntimeException();
26 a5c9df40 Thibault Louet
        } else {
27 bef4271a Thibault Louet
            $values = (string) $values;
28
        }
29
30
        $this->name = $name;
31
        $this->values = $values;
32
    }
33
34
    public function getName()
35
    {
36
        return $this->name;
37
    }
38
39
    public function getValue()
40
    {
41 a5c9df40 Thibault Louet
        if (is_string($this->values)) {
42 bef4271a Thibault Louet
            return $this->values;
43 a5c9df40 Thibault Louet
        }
44 bef4271a Thibault Louet
        return array_map('getValue', $this->values);
45
    }
46
47
    public function __toString()
48
    {
49
        return self::sprintf(
50
            '<arg name="%s">%s</arg>',
51
            $this->name,
52
            $this->values
53
        );
54
    }
55 a5c9df40 Thibault Louet
}