Completed
Push — master ( 7fe739...31f356 )
by Alexey
02:13
created

UseStatement   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 87
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 8
lcom 1
cbo 0
dl 0
loc 87
ccs 24
cts 24
cp 1
rs 10
c 0
b 0
f 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A getFullClassName() 0 3 1
A setFullClassName() 0 12 2
A getClassName() 0 3 1
A getAlias() 0 3 1
A setAlias() 0 5 1
A toArray() 0 7 1
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace Reflection\ClassUseStatements;
6
7
/**
8
 * Class UseStatement
9
 * @package UsesReflection
10
 */
11
class UseStatement {
12
13
    /**
14
     * @var string
15
     */
16
    private $fullClassName;
17
18
    /**
19
     * @var string
20
     */
21
    private $className;
22
23
    /**
24
     * @var string
25
     */
26
    private $alias;
27
28
    /**
29
     * UseStatement constructor.
30
     * @param string $fullClassName
31
     * @param string $alias
32
     */
33 1
    public function __construct(string $fullClassName, string $alias = '') {
34 1
        $this->setFullClassName($fullClassName)
35 1
            ->setAlias($alias);
36 1
    }
37
38
    /**
39
     * @return string
40
     */
41 1
    public function getFullClassName(): string {
42 1
        return $this->fullClassName;
43
    }
44
45
    /**
46
     * @param string $fullClassName
47
     * @return UseStatement
48
     */
49 1
    public function setFullClassName(string $fullClassName): UseStatement {
50 1
        if ($fullClassName[0] !== '\\') {
51 1
            $fullClassName = "\\$fullClassName";
52
        }
53
54 1
        $this->fullClassName = $fullClassName;
55
56 1
        $paths = explode('\\', $fullClassName);
57 1
        $this->className = end($paths);
58
59 1
        return $this;
60
    }
61
62
    /**
63
     * @return string
64
     */
65 1
    public function getClassName(): string {
66 1
        return $this->className;
67
    }
68
69
    /**
70
     * @return string
71
     */
72 1
    public function getAlias(): string {
73 1
        return $this->alias;
74
    }
75
76
    /**
77
     * @param string $alias
78
     * @return UseStatement
79
     */
80 1
    public function setAlias(string $alias): UseStatement {
81 1
        $this->alias = $alias;
82
83 1
        return $this;
84
    }
85
86
    /**
87
     * @return array
88
     */
89 1
    public function toArray() {
90
        return [
91 1
            $this->getFullClassName(),
92 1
            $this->getClassName(),
93 1
            $this->getAlias()
94
        ];
95
    }
96
97
}