@@ 21-141 (lines=121) @@ | ||
18 | * |
|
19 | * @author Beñat Espiña <[email protected]> |
|
20 | */ |
|
21 | abstract class Base2Abstract |
|
22 | { |
|
23 | /** |
|
24 | * Creation date. |
|
25 | * |
|
26 | * @var \DateTime |
|
27 | */ |
|
28 | protected $creationDate; |
|
29 | ||
30 | /** |
|
31 | * Array that contains tags. |
|
32 | * |
|
33 | * @var string[] |
|
34 | */ |
|
35 | protected $tags; |
|
36 | ||
37 | /** |
|
38 | * The title. |
|
39 | * |
|
40 | * @var string|null |
|
41 | */ |
|
42 | protected $title; |
|
43 | ||
44 | /** |
|
45 | * Constructor. |
|
46 | * |
|
47 | * @param null|mixed[] $json The json string being decoded |
|
48 | */ |
|
49 | public function __construct($json = null) |
|
50 | { |
|
51 | $this->creationDate = Util::setIfDateTimeExists($json, 'creation_date'); |
|
52 | $this->tags = Util::setIfArrayExists($json, 'tags'); |
|
53 | $this->title = Util::setIfStringExists($json, 'title'); |
|
54 | } |
|
55 | ||
56 | /** |
|
57 | * Sets creation date. |
|
58 | * |
|
59 | * @param \DateTime $creationDate The creation date |
|
60 | * |
|
61 | * @return $this self Object |
|
62 | */ |
|
63 | public function setCreationDate(\DateTime $creationDate) |
|
64 | { |
|
65 | $this->creationDate = $creationDate; |
|
66 | ||
67 | return $this; |
|
68 | } |
|
69 | ||
70 | /** |
|
71 | * Gets creation date. |
|
72 | * |
|
73 | * @return \DateTime |
|
74 | */ |
|
75 | public function getCreationDate() |
|
76 | { |
|
77 | return $this->creationDate; |
|
78 | } |
|
79 | ||
80 | /** |
|
81 | * Adds tag. |
|
82 | * |
|
83 | * @param string|null $tag The tag |
|
84 | * |
|
85 | * @return $this self Object |
|
86 | */ |
|
87 | public function addTag($tag) |
|
88 | { |
|
89 | $this->tags[] = $tag; |
|
90 | ||
91 | return $this; |
|
92 | } |
|
93 | ||
94 | /** |
|
95 | * Removes tag. |
|
96 | * |
|
97 | * @param string|null $tag The tag |
|
98 | * |
|
99 | * @return $this self Object |
|
100 | */ |
|
101 | public function removeTag($tag) |
|
102 | { |
|
103 | $this->tags = Util::removeElement($tag, $this->tags); |
|
104 | ||
105 | return $this; |
|
106 | } |
|
107 | ||
108 | /** |
|
109 | * Gets array of tags. |
|
110 | * |
|
111 | * @return string[] |
|
112 | */ |
|
113 | public function getTags() |
|
114 | { |
|
115 | return $this->tags; |
|
116 | } |
|
117 | ||
118 | /** |
|
119 | * Sets title. |
|
120 | * |
|
121 | * @param string|null $title The title |
|
122 | * |
|
123 | * @return $this self Object |
|
124 | */ |
|
125 | public function setTitle($title) |
|
126 | { |
|
127 | $this->title = $title; |
|
128 | ||
129 | return $this; |
|
130 | } |
|
131 | ||
132 | /** |
|
133 | * Gets title. |
|
134 | * |
|
135 | * @return string|null |
|
136 | */ |
|
137 | public function getTitle() |
|
138 | { |
|
139 | return $this->title; |
|
140 | } |
|
141 | } |
|
142 |
@@ 21-141 (lines=121) @@ | ||
18 | * |
|
19 | * @author Beñat Espiña <[email protected]> |
|
20 | */ |
|
21 | trait LastTrait |
|
22 | { |
|
23 | /** |
|
24 | * The last body. |
|
25 | * |
|
26 | * @var string|null |
|
27 | */ |
|
28 | protected $lastBody; |
|
29 | ||
30 | /** |
|
31 | * Array that contains the last tags. |
|
32 | * |
|
33 | * @var string[] |
|
34 | */ |
|
35 | protected $lastTags = []; |
|
36 | ||
37 | /** |
|
38 | * The last title. |
|
39 | * |
|
40 | * @var string|null |
|
41 | */ |
|
42 | protected $lastTitle; |
|
43 | ||
44 | /** |
|
45 | * Sets last body. |
|
46 | * |
|
47 | * @param string|null $lastBody The last body |
|
48 | * |
|
49 | * @return $this self Object |
|
50 | */ |
|
51 | public function setLastBody($lastBody) |
|
52 | { |
|
53 | $this->lastBody = $lastBody; |
|
54 | ||
55 | return $this; |
|
56 | } |
|
57 | ||
58 | /** |
|
59 | * Gets last body. |
|
60 | * |
|
61 | * @return string|null |
|
62 | */ |
|
63 | public function getLastBody() |
|
64 | { |
|
65 | return $this->lastBody; |
|
66 | } |
|
67 | ||
68 | /** |
|
69 | * Adds last tag. |
|
70 | * |
|
71 | * @param string|null $lastTag The last tag |
|
72 | * |
|
73 | * @return $this self Object |
|
74 | */ |
|
75 | public function addLastTag($lastTag) |
|
76 | { |
|
77 | $this->lastTags[] = $lastTag; |
|
78 | ||
79 | return $this; |
|
80 | } |
|
81 | ||
82 | /** |
|
83 | * Removes last tag. |
|
84 | * |
|
85 | * @param string|null $lastTag The last tag |
|
86 | * |
|
87 | * @return $this self Object |
|
88 | */ |
|
89 | public function removeLastTag($lastTag) |
|
90 | { |
|
91 | $this->lastTags = Util::removeElement($lastTag, $this->lastTags); |
|
92 | ||
93 | return $this; |
|
94 | } |
|
95 | ||
96 | /** |
|
97 | * Gets array of last tags. |
|
98 | * |
|
99 | * @return string[] |
|
100 | */ |
|
101 | public function getLastTags() |
|
102 | { |
|
103 | return $this->lastTags; |
|
104 | } |
|
105 | ||
106 | /** |
|
107 | * Sets last title. |
|
108 | * |
|
109 | * @param string|null $lastTitle The last title |
|
110 | * |
|
111 | * @return $this self Object |
|
112 | */ |
|
113 | public function setLastTitle($lastTitle) |
|
114 | { |
|
115 | $this->lastTitle = $lastTitle; |
|
116 | ||
117 | return $this; |
|
118 | } |
|
119 | ||
120 | /** |
|
121 | * Gets last title. |
|
122 | * |
|
123 | * @return string|null |
|
124 | */ |
|
125 | public function getLastTitle() |
|
126 | { |
|
127 | return $this->lastTitle; |
|
128 | } |
|
129 | ||
130 | /** |
|
131 | * Loads the variables if the data exist into resource. It works like a constructor. |
|
132 | * |
|
133 | * @param null|mixed[] $resource The resource |
|
134 | */ |
|
135 | protected function loadLast($resource) |
|
136 | { |
|
137 | $this->lastBody = Util::setIfStringExists($resource, 'last_body'); |
|
138 | $this->lastTags = Util::setIfArrayExists($resource, 'last_tags'); |
|
139 | $this->lastTitle = Util::setIfStringExists($resource, 'last_title'); |
|
140 | } |
|
141 | } |
|
142 |