Completed
Push — php-7.1 ( 657403...bab180 )
by SignpostMarv
07:32
created

ElementRef::setNil()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 1
dl 0
loc 5
ccs 0
cts 3
cp 0
crap 2
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace GoetasWebservices\XML\XSDReader\Schema\Element;
6
7
use DOMElement;
8
use GoetasWebservices\XML\XSDReader\Schema\Item;
9
use GoetasWebservices\XML\XSDReader\Schema\Type\Type;
10
use GoetasWebservices\XML\XSDReader\SchemaReader;
11
12
class ElementRef extends AbstractElementSingle
13
{
14
    /**
15
     * @var ElementDef
16
     */
17
    protected $wrapped;
18
19
    public function __construct(ElementDef $element)
20
    {
21
        parent::__construct($element->getSchema(), $element->getName());
22
        $this->wrapped = $element;
23
    }
24
25
    public function getReferencedElement(): ElementDef
26
    {
27
        return $this->wrapped;
28
    }
29
30
    public function getType(): ? Type
31
    {
32
        return $this->wrapped->getType();
33
    }
34
35
    public static function loadElementRef(
36
        ElementDef $referenced,
37
        DOMElement $node
38
    ): ElementRef {
39 45
        $ref = new self($referenced);
40
        $ref->setDoc(SchemaReader::getDocumentation($node));
41 45
42 45
        SchemaReader::maybeSetMax($ref, $node);
43 45
        SchemaReader::maybeSetMin($ref, $node);
44
        if ($node->hasAttribute('nillable')) {
45
            $ref->setNil($node->getAttribute('nillable') == 'true');
46
        }
47
        if ($node->hasAttribute('form')) {
48
            $ref->setQualified($node->getAttribute('form') == 'qualified');
49
        }
50
51
        return $ref;
52
    }
53
}
54