Notification::extractMessage()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 9
rs 9.6666
cc 1
eloc 5
nc 1
nop 0
1
<?php
2
namespace PhpDDD\Notification;
3
4
/**
5
 * This class aims to stores all the validation errors you will find.
6
 */
7
class Notification
8
{
9
10
    /**
11
     * @var Error[]
12
     */
13
    private $errors = array();
14
15
    /**
16
     * @param string $message
17
     */
18
    public function addError($message)
19
    {
20
        $this->errors[] = new Error($message);
21
    }
22
23
    /**
24
     * @return bool
25
     */
26
    public function hasErrors()
27
    {
28
        return !empty($this->errors);
29
    }
30
31
    /**
32
     * @return string[]
33
     */
34
    public function errorMessages()
35
    {
36
        return $this->extractMessage();
37
    }
38
39
    /**
40
     * @return string|null
41
     */
42
    public function firstErrorMessage()
43
    {
44
        if (!$this->hasErrors()) {
45
            return;
46
        }
47
        $error = reset($this->errors);
48
49
        return $error->getMessage();
50
    }
51
52
    /**
53
     * @return string[]
54
     */
55
    private function extractMessage()
56
    {
57
        return array_map(
58
            function (Error $error) {
59
                return $error->getMessage();
60
            },
61
            $this->errors
62
        );
63
    }
64
}
65