AddressesProviderTrait::getAddresses()   A
last analyzed

Complexity

Conditions 5
Paths 5

Size

Total Lines 21

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 11
CRAP Score 5

Importance

Changes 0
Metric Value
dl 0
loc 21
ccs 11
cts 11
cp 1
rs 9.2728
c 0
b 0
f 0
cc 5
nc 5
nop 0
crap 5
1
<?php
2
namespace Germania\Addresses;
3
4
trait AddressesProviderTrait
5
{
6
7
	/**
8
	 * @var AddressesCollectionInterface
9
	 */
10
	public $addresses = array();
11
12
13
	/**
14
	 * @inheritDoc
15
	 */
16 18
	public function getAddresses() : AddressesCollectionInterface
17
	{
18 18
		if ($this->addresses instanceOf AddressesCollectionInterface):
19 10
			return $this->addresses;
20
		
21 8
		elseif (is_array($this->addresses)):
22 2
			$this->addresses = new AddressesCollection( $this->addresses );
23
24 6
		elseif ($this->addresses instanceOf \Traversable):
25 2
			$this->addresses = new AddressesCollection( iterator_to_array($this->addresses ));			
26
27 4
		elseif (empty($this->addresses)):
28 2
			$this->addresses = new AddressesCollection;			
29
30
		else:
31 2
			throw new \UnexpectedValueException( "AddressesCollectionInterface or Array or Traversable expected"); 
32
33
		endif; 
34
35 6
		return $this->addresses;
36
	}
37
}