Security update for Core, with self-updated composer
[yaffs-website] / vendor / drupal / console-core / src / Utils / MessageManager.php
diff --git a/vendor/drupal/console-core/src/Utils/MessageManager.php b/vendor/drupal/console-core/src/Utils/MessageManager.php
new file mode 100644 (file)
index 0000000..0945356
--- /dev/null
@@ -0,0 +1,112 @@
+<?php
+
+namespace Drupal\Console\Core\Utils;
+
+/**
+ * Class MessageParser
+ *
+ * @package Drupal\Console\Core\Utils
+ */
+class MessageManager
+{
+
+    /**
+     * @var array
+     */
+    protected $messages = [];
+
+    /**
+     * @param $type
+     * @param $message
+     * @param $code
+     * @param $showBy
+     * @param $removeBy
+     */
+    private function add($type, $message, $code, $showBy, $removeBy)
+    {
+        $this->messages[] = [
+            'type' =>$type,
+            'message' => $message,
+            'code' => $code,
+            'showBy' => $showBy,
+            'removeBy' => $removeBy,
+        ];
+    }
+
+    /**
+     * @param $message
+     * @param $code
+     * @param $showBy
+     * @param $removeBy
+     */
+    public function error($message, $code = 0, $showBy = 'all', $removeBy = null)
+    {
+        $this->add('error', $message, $code, $showBy, $removeBy);
+    }
+
+    /**
+     * @param $message
+     * @param $code
+     * @param $showBy
+     * @param $removeBy
+     */
+    public function warning($message, $code = 0, $showBy = 'all', $removeBy = null)
+    {
+        $this->add('warning', $message, $code, $showBy, $removeBy);
+    }
+
+    /**
+     * @param $message
+     * @param $code
+     * @param $showBy
+     * @param $removeBy
+     */
+    public function info($message, $code = 0, $showBy = 'all', $removeBy = null)
+    {
+        $this->add('info', $message, $code, $showBy, $removeBy);
+    }
+
+    /**
+     * @param $message
+     * @param $code
+     * @param $showBy
+     * @param $removeBy
+     */
+    public function listing(array $message, $code = 0, $showBy = 'all', $removeBy = null)
+    {
+        $this->add('listing', $message, $code, $showBy, $removeBy);
+    }
+
+    /**
+     * @param $message
+     * @param $code
+     * @param $showBy
+     * @param $removeBy
+     */
+    public function comment($message, $code = 0, $showBy = 'all', $removeBy = null)
+    {
+        $this->add('comment', $message, $code, $showBy, $removeBy);
+    }
+
+    /**
+     * @return array
+     */
+    public function getMessages()
+    {
+        return $this->messages;
+    }
+
+    public function remove($removeBy = null)
+    {
+        $this->messages = array_filter(
+            $this->messages,
+            function ($message) use ($removeBy) {
+                if (is_null($message['removeBy'])) {
+                    return true;
+                }
+
+                return !($message['removeBy'] == $removeBy);
+            }
+        );
+    }
+}