Total Complexity | 5 |
Total Lines | 53 |
Duplicated Lines | 0 % |
Coverage | 100% |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
9 | trait ExtensionMemberManager { |
||
10 | /** @var array */ |
||
11 | protected $extensionMembers = []; |
||
12 | |||
13 | /** |
||
14 | * human api |
||
15 | */ |
||
16 | |||
17 | /** |
||
18 | * spec api |
||
19 | */ |
||
20 | |||
21 | /** |
||
22 | * @param ExtensionInterface $extension |
||
23 | * @param string $key |
||
24 | * @param mixed $value |
||
25 | */ |
||
26 | 16 | public function addExtensionMember(ExtensionInterface $extension, $key, $value) { |
|
27 | 16 | $namespace = $extension->getNamespace(); |
|
28 | |||
29 | 16 | if (strpos($key, $namespace.':') === 0) { |
|
30 | 1 | $key = substr($key, strlen($namespace.':')); |
|
31 | } |
||
32 | |||
33 | 16 | Validator::checkMemberName($key); |
|
34 | |||
35 | 15 | if (is_object($value)) { |
|
36 | 1 | $value = Converter::objectToArray($value); |
|
37 | } |
||
38 | |||
39 | 15 | $this->extensionMembers[$namespace.':'.$key] = $value; |
|
40 | 15 | } |
|
41 | |||
42 | /** |
||
43 | * internal api |
||
44 | */ |
||
45 | |||
46 | /** |
||
47 | * @internal |
||
48 | * |
||
49 | * @return boolean |
||
50 | */ |
||
51 | 182 | public function hasExtensionMembers() { |
|
52 | 182 | return ($this->extensionMembers !== []); |
|
53 | } |
||
54 | |||
55 | /** |
||
56 | * @internal |
||
57 | * |
||
58 | * @return array |
||
59 | */ |
||
60 | 9 | public function getExtensionMembers() { |
|
62 | } |
||
63 | } |
||
64 |