annotate vendor/zendframework/zend-feed/src/Writer/Deleted.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@0 1 <?php
Chris@0 2 /**
Chris@0 3 * Zend Framework (http://framework.zend.com/)
Chris@0 4 *
Chris@0 5 * @link http://github.com/zendframework/zf2 for the canonical source repository
Chris@0 6 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
Chris@0 7 * @license http://framework.zend.com/license/new-bsd New BSD License
Chris@0 8 */
Chris@0 9
Chris@0 10 namespace Zend\Feed\Writer;
Chris@0 11
Chris@0 12 use DateTime;
Chris@17 13 use DateTimeInterface;
Chris@0 14 use Zend\Feed\Uri;
Chris@0 15
Chris@0 16 /**
Chris@0 17 */
Chris@0 18 class Deleted
Chris@0 19 {
Chris@0 20 /**
Chris@0 21 * Internal array containing all data associated with this entry or item.
Chris@0 22 *
Chris@0 23 * @var array
Chris@0 24 */
Chris@0 25 protected $data = [];
Chris@0 26
Chris@0 27 /**
Chris@0 28 * Holds the value "atom" or "rss" depending on the feed type set when
Chris@0 29 * when last exported.
Chris@0 30 *
Chris@0 31 * @var string
Chris@0 32 */
Chris@0 33 protected $type = null;
Chris@0 34
Chris@0 35 /**
Chris@0 36 * Set the feed character encoding
Chris@0 37 *
Chris@0 38 * @param $encoding
Chris@0 39 * @throws Exception\InvalidArgumentException
Chris@0 40 * @return string|null
Chris@0 41 * @return Deleted
Chris@0 42 */
Chris@0 43 public function setEncoding($encoding)
Chris@0 44 {
Chris@12 45 if (empty($encoding) || ! is_string($encoding)) {
Chris@0 46 throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string');
Chris@0 47 }
Chris@0 48 $this->data['encoding'] = $encoding;
Chris@0 49
Chris@0 50 return $this;
Chris@0 51 }
Chris@0 52
Chris@0 53 /**
Chris@0 54 * Get the feed character encoding
Chris@0 55 *
Chris@0 56 * @return string|null
Chris@0 57 */
Chris@0 58 public function getEncoding()
Chris@0 59 {
Chris@12 60 if (! array_key_exists('encoding', $this->data)) {
Chris@0 61 return 'UTF-8';
Chris@0 62 }
Chris@0 63 return $this->data['encoding'];
Chris@0 64 }
Chris@0 65
Chris@0 66 /**
Chris@0 67 * Unset a specific data point
Chris@0 68 *
Chris@0 69 * @param string $name
Chris@0 70 * @return Deleted
Chris@0 71 */
Chris@0 72 public function remove($name)
Chris@0 73 {
Chris@0 74 if (isset($this->data[$name])) {
Chris@0 75 unset($this->data[$name]);
Chris@0 76 }
Chris@0 77
Chris@0 78 return $this;
Chris@0 79 }
Chris@0 80
Chris@0 81 /**
Chris@0 82 * Set the current feed type being exported to "rss" or "atom". This allows
Chris@0 83 * other objects to gracefully choose whether to execute or not, depending
Chris@0 84 * on their appropriateness for the current type, e.g. renderers.
Chris@0 85 *
Chris@0 86 * @param string $type
Chris@0 87 * @return Deleted
Chris@0 88 */
Chris@0 89 public function setType($type)
Chris@0 90 {
Chris@0 91 $this->type = $type;
Chris@0 92 return $this;
Chris@0 93 }
Chris@0 94
Chris@0 95 /**
Chris@0 96 * Retrieve the current or last feed type exported.
Chris@0 97 *
Chris@0 98 * @return string Value will be "rss" or "atom"
Chris@0 99 */
Chris@0 100 public function getType()
Chris@0 101 {
Chris@0 102 return $this->type;
Chris@0 103 }
Chris@0 104
Chris@0 105 /**
Chris@0 106 * Set reference
Chris@0 107 *
Chris@0 108 * @param $reference
Chris@0 109 * @throws Exception\InvalidArgumentException
Chris@0 110 * @return Deleted
Chris@0 111 */
Chris@0 112 public function setReference($reference)
Chris@0 113 {
Chris@12 114 if (empty($reference) || ! is_string($reference)) {
Chris@0 115 throw new Exception\InvalidArgumentException('Invalid parameter: reference must be a non-empty string');
Chris@0 116 }
Chris@0 117 $this->data['reference'] = $reference;
Chris@0 118
Chris@0 119 return $this;
Chris@0 120 }
Chris@0 121
Chris@0 122 /**
Chris@0 123 * @return string
Chris@0 124 */
Chris@0 125 public function getReference()
Chris@0 126 {
Chris@12 127 if (! array_key_exists('reference', $this->data)) {
Chris@0 128 return;
Chris@0 129 }
Chris@0 130 return $this->data['reference'];
Chris@0 131 }
Chris@0 132
Chris@0 133 /**
Chris@0 134 * Set when
Chris@0 135 *
Chris@17 136 * @param null|int|DateTimeInterface $date
Chris@0 137 * @throws Exception\InvalidArgumentException
Chris@0 138 * @return Deleted
Chris@0 139 */
Chris@0 140 public function setWhen($date = null)
Chris@0 141 {
Chris@0 142 if ($date === null) {
Chris@0 143 $date = new DateTime();
Chris@17 144 }
Chris@17 145 if (is_int($date)) {
Chris@0 146 $date = new DateTime('@' . $date);
Chris@17 147 }
Chris@17 148 if (! $date instanceof DateTimeInterface) {
Chris@0 149 throw new Exception\InvalidArgumentException('Invalid DateTime object or UNIX Timestamp'
Chris@0 150 . ' passed as parameter');
Chris@0 151 }
Chris@0 152 $this->data['when'] = $date;
Chris@0 153
Chris@0 154 return $this;
Chris@0 155 }
Chris@0 156
Chris@0 157 /**
Chris@0 158 * @return DateTime
Chris@0 159 */
Chris@0 160 public function getWhen()
Chris@0 161 {
Chris@12 162 if (! array_key_exists('when', $this->data)) {
Chris@0 163 return;
Chris@0 164 }
Chris@0 165 return $this->data['when'];
Chris@0 166 }
Chris@0 167
Chris@0 168 /**
Chris@0 169 * Set by
Chris@0 170 *
Chris@0 171 * @param array $by
Chris@0 172 * @throws Exception\InvalidArgumentException
Chris@0 173 * @return Deleted
Chris@0 174 */
Chris@0 175 public function setBy(array $by)
Chris@0 176 {
Chris@0 177 $author = [];
Chris@12 178 if (! array_key_exists('name', $by)
Chris@0 179 || empty($by['name'])
Chris@12 180 || ! is_string($by['name'])
Chris@0 181 ) {
Chris@0 182 throw new Exception\InvalidArgumentException('Invalid parameter: author array must include a'
Chris@0 183 . ' "name" key with a non-empty string value');
Chris@0 184 }
Chris@0 185 $author['name'] = $by['name'];
Chris@0 186 if (isset($by['email'])) {
Chris@12 187 if (empty($by['email']) || ! is_string($by['email'])) {
Chris@0 188 throw new Exception\InvalidArgumentException('Invalid parameter: "email" array'
Chris@0 189 . ' value must be a non-empty string');
Chris@0 190 }
Chris@0 191 $author['email'] = $by['email'];
Chris@0 192 }
Chris@0 193 if (isset($by['uri'])) {
Chris@0 194 if (empty($by['uri'])
Chris@12 195 || ! is_string($by['uri'])
Chris@12 196 || ! Uri::factory($by['uri'])->isValid()
Chris@0 197 ) {
Chris@0 198 throw new Exception\InvalidArgumentException('Invalid parameter: "uri" array value must'
Chris@0 199 . ' be a non-empty string and valid URI/IRI');
Chris@0 200 }
Chris@0 201 $author['uri'] = $by['uri'];
Chris@0 202 }
Chris@0 203 $this->data['by'] = $author;
Chris@0 204
Chris@0 205 return $this;
Chris@0 206 }
Chris@0 207
Chris@0 208 /**
Chris@0 209 * @return string
Chris@0 210 */
Chris@0 211 public function getBy()
Chris@0 212 {
Chris@12 213 if (! array_key_exists('by', $this->data)) {
Chris@0 214 return;
Chris@0 215 }
Chris@0 216 return $this->data['by'];
Chris@0 217 }
Chris@0 218
Chris@0 219 /**
Chris@0 220 * @param string $comment
Chris@0 221 * @return Deleted
Chris@0 222 */
Chris@0 223 public function setComment($comment)
Chris@0 224 {
Chris@0 225 $this->data['comment'] = $comment;
Chris@0 226 return $this;
Chris@0 227 }
Chris@0 228
Chris@0 229 /**
Chris@0 230 * @return string
Chris@0 231 */
Chris@0 232 public function getComment()
Chris@0 233 {
Chris@12 234 if (! array_key_exists('comment', $this->data)) {
Chris@0 235 return;
Chris@0 236 }
Chris@0 237 return $this->data['comment'];
Chris@0 238 }
Chris@0 239 }