Passed
Branch feature/php8.3 (4d3b0a)
by Tim
17:15
created

WhiteSpaceValue   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 39
rs 10
c 0
b 0
f 0
wmc 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace SimpleSAML\XMLSchema\Type\Schema;
6
7
use SimpleSAML\XML\Assert\Assert;
8
use SimpleSAML\XMLSchema\Exception\SchemaViolationException;
9
use SimpleSAML\XMLSchema\Type\NMTokenValue;
10
use SimpleSAML\XMLSchema\XML\Enumeration\WhiteSpaceEnum;
11
12
use function array_column;
13
14
/**
15
 * @package simplesaml/xml-common
16
 */
17
class WhiteSpaceValue extends NMTokenValue
18
{
19
    public const string SCHEMA_TYPE = 'whiteSpace';
0 ignored issues
show
Bug introduced by
A parse error occurred: Syntax error, unexpected T_STRING, expecting '=' on line 19 at column 24
Loading history...
20
21
22
    /**
23
     * Validate the value.
24
     *
25
     * @param string $value The value
26
     * @throws \SimpleSAML\XMLSchema\Exception\SchemaViolationException on failure
27
     */
28
    protected function validateValue(string $value): void
29
    {
30
        Assert::oneOf(
31
            $this->sanitizeValue($value),
32
            array_column(WhiteSpaceEnum::cases(), 'value'),
33
            SchemaViolationException::class,
34
        );
35
    }
36
37
38
    /**
39
     * @param \SimpleSAML\XMLSchema\XML\Enumeration\WhiteSpaceEnum $value
40
     */
41
    public static function fromEnum(WhiteSpaceEnum $value): static
42
    {
43
        return new static($value->value);
44
    }
45
46
47
    /**
48
     * @return \SimpleSAML\XMLSchema\XML\Enumeration\WhiteSpaceEnum $value
49
     */
50
    public function toEnum(): WhiteSpaceEnum
51
    {
52
        return WhiteSpaceEnum::from($this->getValue());
53
    }
54
}
55