Completed
Branch master (adbf7c)
by Ondrej
08:25
created

Set   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A add() 0 8 2
A remove() 0 8 2
1
<?php
2
namespace SpareParts\Enum\Set;
3
4
use SpareParts\Enum\Enum;
5
use SpareParts\Enum\Exception\EnumSetMustContainEnumsException;
6
7
class Set implements ISet
8
{
9
    use SetTrait;
10
11
    /**
12
     * @param Enum $enum
13
     * @return $this
14
     */
15
    public function add(Enum $enum)
16
    {
17
        if (!($enum instanceof $this->enumClass)) {
18
            throw new EnumSetMustContainEnumsException(sprintf("Expected %s, got %s", $this->enumClass, get_class($enum)));
19
        }
20
        $this->set[(string) $enum] = $enum;
21
        return $this;
22
    }
23
24
    /**
25
     * @param Enum $enum
26
     * @return $this
27
     */
28
    public function remove(Enum $enum)
29
    {
30
        if (!($enum instanceof $this->enumClass)) {
31
            throw new EnumSetMustContainEnumsException(sprintf("Expected %s, got %s", $this->enumClass, get_class($enum)));
32
        }
33
        unset($this->set[(string) $enum]);
34
        return $this;
35
    }
36
}
37