1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Message;
/**
* Abstract message model
*
* @api
* @since 100.0.2
*/
abstract class AbstractMessage implements MessageInterface
{
/**
* @var string
*/
protected $text;
/**
* @var string
*/
protected $identifier;
/**
* @var bool
*/
protected $isSticky = false;
/**
* @var array
*/
protected $data;
/**
* @param string $text
*/
public function __construct(
$text = null
) {
$this->text = $text;
}
/**
* Getter message type
*
* @return string
*/
abstract public function getType();
/**
* Getter for text of message
*
* @return string
*/
public function getText()
{
return (string)$this->text;
}
/**
* Setter message text
*
* @param string $text
* @return $this
*/
public function setText($text)
{
$this->text = $text;
return $this;
}
/**
* Setter message identifier
*
* @param string $identifier
* @return $this
*/
public function setIdentifier($identifier)
{
$this->identifier = $identifier;
return $this;
}
/**
* Getter message identifier
*
* @return string
*/
public function getIdentifier()
{
return $this->identifier;
}
/**
* Setter for flag. Whether message is sticky
*
* @param bool $isSticky
* @return $this
*/
public function setIsSticky($isSticky = true)
{
$this->isSticky = $isSticky;
return $this;
}
/**
* Getter for flag. Whether message is sticky
*
* @return bool
* @SuppressWarnings(PHPMD.BooleanGetMethodName)
*/
public function getIsSticky()
{
return $this->isSticky;
}
/**
* Retrieve message as a string
*
* @return string
*/
public function toString()
{
$out = $this->getType() . ': ' . $this->getIdentifier() . ': ' . $this->getText();
return $out;
}
/**
* Sets message data
*
* @param array $data
* @return $this
* @throws \InvalidArgumentException
*/
public function setData(array $data = [])
{
array_walk_recursive(
$data,
function ($element) {
if (is_object($element) && !$element instanceof \Serializable) {
throw new \InvalidArgumentException('Only serializable content is allowed.');
}
}
);
$this->data = $data;
return $this;
}
/**
* Returns message data
*
* @return array
*/
public function getData()
{
return (array)$this->data;
}
}