QName   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 20
c 1
b 0
f 0
dl 0
loc 50
rs 10
wmc 8

6 Methods

Rating   Name   Duplication   Size   Complexity  
A getQualifier() 0 3 1
A parseQName() 0 11 2
A getLocalName() 0 3 1
A __construct() 0 4 1
A combine() 0 6 2
A __toString() 0 3 1
1
<?php
2
3
namespace Xml\Impl\Util;
4
5
class QName
6
{
7
8
    private $qualifier;
9
    private $localName;
10
11
    public function __construct(?string $qualifier, string $localName)
12
    {
13
        $this->qualifier = $qualifier;
14
        $this->localName = $localName;
15
    }
16
17
    public function getQualifier(): ?string
18
    {
19
        return $this->qualifier;
20
    }
21
22
    public function getLocalName(): string
23
    {
24
        return $this->localName;
25
    }
26
27
    public static function parseQName(string $identifier): QName
28
    {
29
        $split = preg_split("/:/", $identifier, 2);
30
        if (count($split) == 2) {
31
            $qualifier = $split[0];
32
            $localName = $split[1];
33
        } else {
34
            $qualifier = null;
35
            $localName = $split[0];
36
        }
37
        return new QName($qualifier, $localName);
38
    }
39
40
    public static function combine(?string $qualifier, string $localName): string
41
    {
42
        if (empty($qualifier)) {
43
            return $localName;
44
        } else {
45
            return $qualifier . ":" . $localName;
46
        }
47
    }
48
49
    /**
50
     * @return mixed
51
     */
52
    public function __toString()
53
    {
54
        return self::combine($this->qualifier, $this->localName);
55
    }
56
}
57