Passed
Pull Request — master (#358)
by Tim
02:24
created

Artifact::validateContent()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 1
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace SimpleSAML\SAML2\XML\samlp;
6
7
use DOMElement;
8
use SimpleSAML\Assert\Assert;
9
use SimpleSAML\XML\Base64ElementTrait;
10
use SimpleSAML\XML\Exception\InvalidDOMElementException;
11
use SimpleSAML\XML\Exception\SchemaViolationException;
12
13
/**
14
 * Class for SAML artifacts.
15
 *
16
 * @package simplesamlphp/saml2
17
 */
18
final class Artifact extends AbstractSamlpElement
19
{
20
    use Base64ElementTrait;
0 ignored issues
show
introduced by
The trait SimpleSAML\XML\Base64ElementTrait requires some properties which are not provided by SimpleSAML\SAML2\XML\samlp\Artifact: $localName, $namespaceURI
Loading history...
21
22
    /**
23
     * Initialize an artifact.
24
     *
25
     * @param string $content
26
     */
27
    public function __construct(
28
        string $content,
29
    ) {
30
        $this->setContent($content);
31
    }
32
33
34
    /**
35
     * Validate the content of the element.
36
     *
37
     * @param string $content  The value to go in the XML textContent
38
     * @throws \Exception on failure
39
     * @return void
40
     */
41
    protected function validateContent(string $content): void
42
    {
43
        Assert::validURI($content, SchemaViolationException::class); // Covers the empty string
44
    }
45
46
47
    /**
48
     * Convert XML into an Artifact
49
     *
50
     * @param \DOMElement $xml The XML element we should load
51
     * @return static
52
     *
53
     * @throws \SimpleSAML\XML\Exception\InvalidDOMElementException
54
     *   If the qualified name of the supplied element is wrong
55
     */
56
    public static function fromXML(DOMElement $xml): static
57
    {
58
        Assert::same($xml->localName, 'Artifact', InvalidDOMElementException::class);
59
        Assert::same($xml->namespaceURI, Artifact::NS, InvalidDOMElementException::class);
60
61
        return new static($xml->textContent);
62
    }
63
}
64