Passed
Push — static-analysis ( 661417...be3dd0 )
by SignpostMarv
02:22
created

Element::setQualified()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2

Importance

Changes 0
Metric Value
cc 2
eloc 2
c 0
b 0
f 0
nc 2
nop 1
dl 0
loc 5
ccs 3
cts 3
cp 1
crap 2
rs 9.4285
1
<?php
2
3
namespace GoetasWebservices\XML\XSDReader\Schema\Element;
4
5
use DOMElement;
6
use GoetasWebservices\XML\XSDReader\Schema\Item;
7
use GoetasWebservices\XML\XSDReader\Schema\Schema;
8
use GoetasWebservices\XML\XSDReader\SchemaReader;
9
10
class Element extends AbstractElementSingle implements ElementItem
11
{
12
    /**
13
     * @return Element
14
     */
15 45
    public static function loadElement(
16
        SchemaReader $reader,
17
        Schema $schema,
18
        DOMElement $node
19
    ) {
20 45
        $element = new self($schema, $node->getAttribute('name'));
21 45
        $element->setDoc(SchemaReader::getDocumentation($node));
22
23 45
        $reader->fillItem($element, $node);
24
25 45
        SchemaReader::maybeSetMax($element, $node);
26 45
        SchemaReader::maybeSetMin($element, $node);
27
28 45
        $xp = new \DOMXPath($node->ownerDocument);
29 45
        $xp->registerNamespace('xs', 'http://www.w3.org/2001/XMLSchema');
30
31 45
        if ($xp->query('ancestor::xs:choice', $node)->length) {
32 45
            $element->setMin(0);
33 45
        }
34
35 45
        if ($node->hasAttribute('nillable')) {
36 3
            $element->setNil($node->getAttribute('nillable') == 'true');
37 3
        }
38 45
        if ($node->hasAttribute('form')) {
39 3
            $element->setQualified($node->getAttribute('form') == 'qualified');
40 3
        }
41
42 45
        return $element;
43
    }
44
}
45