Passed
Pull Request — main (#66)
by Lode
02:46
created

ExtensionMemberManager::hasExtensionMembers()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 2
ccs 2
cts 2
cp 1
crap 1
rs 10
1
<?php
2
3
namespace alsvanzelf\jsonapi\helpers;
4
5
use alsvanzelf\jsonapi\helpers\Converter;
6
use alsvanzelf\jsonapi\helpers\Validator;
7
use alsvanzelf\jsonapi\interfaces\ExtensionInterface;
8
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() {
61 9
		return $this->extensionMembers;
62
	}
63
}
64