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

UseStatement::setAlias()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 5
ccs 3
cts 3
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 1
crap 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
}