094535639406994c1fa44533cfaa47c287ba0b14
[yaffs-website] / vendor / drupal / console-core / src / Utils / MessageManager.php
1 <?php
2
3 namespace Drupal\Console\Core\Utils;
4
5 /**
6  * Class MessageParser
7  *
8  * @package Drupal\Console\Core\Utils
9  */
10 class MessageManager
11 {
12
13     /**
14      * @var array
15      */
16     protected $messages = [];
17
18     /**
19      * @param $type
20      * @param $message
21      * @param $code
22      * @param $showBy
23      * @param $removeBy
24      */
25     private function add($type, $message, $code, $showBy, $removeBy)
26     {
27         $this->messages[] = [
28             'type' =>$type,
29             'message' => $message,
30             'code' => $code,
31             'showBy' => $showBy,
32             'removeBy' => $removeBy,
33         ];
34     }
35
36     /**
37      * @param $message
38      * @param $code
39      * @param $showBy
40      * @param $removeBy
41      */
42     public function error($message, $code = 0, $showBy = 'all', $removeBy = null)
43     {
44         $this->add('error', $message, $code, $showBy, $removeBy);
45     }
46
47     /**
48      * @param $message
49      * @param $code
50      * @param $showBy
51      * @param $removeBy
52      */
53     public function warning($message, $code = 0, $showBy = 'all', $removeBy = null)
54     {
55         $this->add('warning', $message, $code, $showBy, $removeBy);
56     }
57
58     /**
59      * @param $message
60      * @param $code
61      * @param $showBy
62      * @param $removeBy
63      */
64     public function info($message, $code = 0, $showBy = 'all', $removeBy = null)
65     {
66         $this->add('info', $message, $code, $showBy, $removeBy);
67     }
68
69     /**
70      * @param $message
71      * @param $code
72      * @param $showBy
73      * @param $removeBy
74      */
75     public function listing(array $message, $code = 0, $showBy = 'all', $removeBy = null)
76     {
77         $this->add('listing', $message, $code, $showBy, $removeBy);
78     }
79
80     /**
81      * @param $message
82      * @param $code
83      * @param $showBy
84      * @param $removeBy
85      */
86     public function comment($message, $code = 0, $showBy = 'all', $removeBy = null)
87     {
88         $this->add('comment', $message, $code, $showBy, $removeBy);
89     }
90
91     /**
92      * @return array
93      */
94     public function getMessages()
95     {
96         return $this->messages;
97     }
98
99     public function remove($removeBy = null)
100     {
101         $this->messages = array_filter(
102             $this->messages,
103             function ($message) use ($removeBy) {
104                 if (is_null($message['removeBy'])) {
105                     return true;
106                 }
107
108                 return !($message['removeBy'] == $removeBy);
109             }
110         );
111     }
112 }