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

GetComplete   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A fromArray() 0 7 1
A toArray() 0 3 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\SAMLAnyURIValue;
10
use SimpleSAML\XML\SchemaValidatableElementInterface;
11
use SimpleSAML\XML\SchemaValidatableElementTrait;
12
use SimpleSAML\XML\TypedTextContentTrait;
13
14
use function array_key_first;
15
use function strval;
16
17
/**
18
 * Class representing a samlp:GetComplete element.
19
 *
20
 * @package simplesaml/saml2
21
 */
22
final class GetComplete extends AbstractSamlpElement implements SchemaValidatableElementInterface
23
{
24
    use SchemaValidatableElementTrait;
25
    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\GetComplete: $localName, $namespaceURI
Loading history...
26
27
28
    /** @var string */
29
    public const TEXTCONTENT_TYPE = SAMLAnyURIValue::class;
30
31
32
    /**
33
     * Create a class from an array
34
     *
35
     * @param array $data
36
     * @return static
37
     */
38
    public static function fromArray(array $data): static
39
    {
40
        Assert::allString($data, ArrayValidationException::class);
41
42
        $index = array_key_first($data);
43
        return new static(
44
            SAMLAnyURIValue::fromString($data[$index]),
45
        );
46
    }
47
48
49
    /**
50
     * Create an array from this class
51
     *
52
     * @return array
53
     */
54
    public function toArray(): array
55
    {
56
        return [strval($this->getContent())];
57
    }
58
}
59