Passed
Pull Request — master (#374)
by Tim
02:43
created

RequesterID   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 34
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A toArray() 0 3 1
A fromArray() 0 7 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace SimpleSAML\SAML2\XML\samlp;
6
7
use SimpleSAML\SAML2\Assert\Assert;
8
use SimpleSAML\SAML2\Exception\ArrayValidationException;
9
use SimpleSAML\SAML2\Type\EntityIDValue;
10
use SimpleSAML\XML\{SchemaValidatableElementInterface, SchemaValidatableElementTrait};
11
use SimpleSAML\XML\TypedTextContentTrait;
12
13
use function array_key_first;
14
15
/**
16
 * Class representing a samlp:RequesterID element.
17
 *
18
 * @package simplesaml/saml2
19
 */
20
final class RequesterID extends AbstractSamlpElement implements SchemaValidatableElementInterface
21
{
22
    use SchemaValidatableElementTrait;
23
    use TypedTextContentTrait;
0 ignored issues
show
introduced by
The trait SimpleSAML\XML\TypedTextContentTrait requires some properties which are not provided by SimpleSAML\SAML2\XML\samlp\RequesterID: $localName, $namespaceURI
Loading history...
24
25
    /** @var string */
26
    public const TEXTCONTENT_TYPE = EntityIDValue::class;
27
28
29
    /**
30
     * Create a class from an array
31
     *
32
     * @param array $data
33
     * @return static
34
     */
35
    public static function fromArray(array $data): static
36
    {
37
        Assert::allString($data, ArrayValidationException::class);
38
39
        $index = array_key_first($data);
40
        return new static(
41
            EntityIDValue::fromString($data[$index]),
42
        );
43
    }
44
45
46
    /**
47
     * Create an array from this class
48
     *
49
     * @return array
50
     */
51
    public function toArray(): array
52
    {
53
        return [$this->getContent()->getValue()];
54
    }
55
}
56