Completed
Push — master ( 44b88c...ea2c59 )
by Pablo
03:18
created

ObjectCollection   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 1
dl 0
loc 36
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 9 3
setClassName() 0 1 ?
A getCollection() 0 4 1
1
<?php
2
3
namespace PhpValueObjects\Collection;
4
5
use PhpValueObjects\Collection\Exception\InvalidCollectionObjectException;
6
7
abstract class ObjectCollection
8
{
9
    /**
10
     * @var array
11
     */
12
    private $objects;
13
14
    /**
15
     * ObjectCollection constructor.
16
     * @param array $objects
17
     * @throws InvalidCollectionObjectException
18
     */
19
    public function __construct(array $objects)
20
    {
21
        foreach ($objects as $object) {
22
            if (false === is_a($object, $this->setClassName())) {
23
                throw new InvalidCollectionObjectException($object, $this->setClassName());
24
            }
25
        }
26
        $this->objects = $objects;
27
    }
28
29
    /**
30
     * @return string
31
     */
32
    abstract protected function setClassName();
33
34
    /**
35
     * @return array
36
     */
37
    public function getCollection()
38
    {
39
        return $this->objects;
40
    }
41
42
}
43