Visibility::get()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

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 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 1
1
<?php
2
3
namespace PHPSemVerChecker\Operation;
4
5
use PhpParser\Node\Stmt;
6
use PhpParser\Node\Stmt\Class_;
7
8
class Visibility
9
{
10
	/**
11
	 * @return array
12
	 */
13 86
	public static function getMapping()
14
	{
15
		return [
16 86
			Class_::MODIFIER_PUBLIC    => 0,
17
			Class_::MODIFIER_PROTECTED => 1,
18
			Class_::MODIFIER_PRIVATE   => 2,
19
		];
20
	}
21
22
	/**
23
	 * @param int $visibility
24
	 * @return int
25
	 */
26 86
	public static function get($visibility)
27
	{
28 86
		$mapping = self::getMapping();
29 86
		return $mapping[$visibility];
30
	}
31
32
	/**
33
	 * @param \PhpParser\Node\Stmt $context
34
	 * @return int
35
	 */
36 86
	public static function getForContext(Stmt $context)
37
	{
38 86
		if ($context->isPublic()) {
39 38
			return Class_::MODIFIER_PUBLIC;
40 48
		} elseif ($context->isProtected()) {
41 24
			return Class_::MODIFIER_PROTECTED;
42
		} else {
43 24
			return Class_::MODIFIER_PRIVATE;
44
		}
45
	}
46
47
	/**
48
	 * @param string $visibility
49
	 * @return int
50
	 */
51 103 View Code Duplication
	public static function getModifier($visibility)
52
	{
53 103
		if ($visibility === 'public') {
54 43
			return Class_::MODIFIER_PUBLIC;
55 60
		} elseif ($visibility === 'protected') {
56 30
			return Class_::MODIFIER_PROTECTED;
57
		} else {
58 30
			return Class_::MODIFIER_PRIVATE;
59
		}
60
	}
61
62
	/**
63
	 * @param int $visibility
64
	 * @return string
65
	 */
66 86 View Code Duplication
	public static function toString($visibility)
67
	{
68 86
		if ($visibility === Class_::MODIFIER_PUBLIC) {
69 38
			return 'public';
70 48
		} elseif ($visibility === Class_::MODIFIER_PROTECTED) {
71 24
			return 'protected';
72
		} else {
73 24
			return 'private';
74
		}
75
	}
76
}
77