+
+ /**
+ * Format the entry language to a valid html lang attribute.
+ */
+ public function getHTMLLanguage()
+ {
+ $parsedLocale = \Locale::parseLocale($this->getLanguage());
+ $lang = '';
+ $lang .= $parsedLocale['language'] ?? '';
+ $lang .= isset($parsedLocale['region']) ? '-' . $parsedLocale['region'] : '';
+
+ return $lang;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getUid()
+ {
+ return $this->uid;
+ }
+
+ /**
+ * @param string $uid
+ *
+ * @return Entry
+ */
+ public function setUid($uid)
+ {
+ $this->uid = $uid;
+
+ return $this;
+ }
+
+ public function generateUid()
+ {
+ if (null === $this->uid) {
+ // @see http://blog.kevingomez.fr/til/2015/07/26/why-is-uniqid-slow/ for true parameter
+ $this->uid = uniqid('', true);
+ }
+ }
+
+ public function cleanUid()
+ {
+ $this->uid = null;
+ }
+
+ /**
+ * Used in the entries filter so it's more explicit for the end user than the uid.
+ * Also used in the API.
+ *
+ * @VirtualProperty
+ * @SerializedName("is_public")
+ * @Groups({"entries_for_user"})
+ *
+ * @return bool
+ */
+ public function isPublic()
+ {
+ return null !== $this->uid;
+ }
+
+ /**
+ * @return string
+ */
+ public function getHttpStatus()
+ {
+ return $this->httpStatus;
+ }
+
+ /**
+ * @param string $httpStatus
+ *
+ * @return Entry
+ */
+ public function setHttpStatus($httpStatus)
+ {
+ $this->httpStatus = $httpStatus;
+
+ return $this;
+ }
+
+ /**
+ * @return \Datetime
+ */
+ public function getPublishedAt()
+ {
+ return $this->publishedAt;
+ }
+
+ /**
+ * @return Entry
+ */
+ public function setPublishedAt(\Datetime $publishedAt)
+ {
+ $this->publishedAt = $publishedAt;
+
+ return $this;
+ }
+
+ /**
+ * @return array
+ */
+ public function getPublishedBy()
+ {
+ return $this->publishedBy;
+ }
+
+ /**
+ * @param array $publishedBy
+ *
+ * @return Entry
+ */
+ public function setPublishedBy($publishedBy)
+ {
+ $this->publishedBy = $publishedBy;
+
+ return $this;
+ }
+
+ /**
+ * @return array
+ */
+ public function getHeaders()
+ {
+ return $this->headers;
+ }
+
+ /**
+ * @param array $headers
+ *
+ * @return Entry
+ */
+ public function setHeaders($headers)
+ {
+ $this->headers = $headers;
+
+ return $this;
+ }
+
+ /**
+ * Set origin url.
+ *
+ * @param string $originUrl
+ *
+ * @return Entry
+ */
+ public function setOriginUrl($originUrl)
+ {
+ $this->originUrl = $originUrl;
+
+ return $this;
+ }
+
+ /**
+ * Get origin url.
+ *
+ * @return string
+ */
+ public function getOriginUrl()
+ {
+ return $this->originUrl;
+ }
+
+ /**
+ * Set given url.
+ *
+ * @param string $givenUrl
+ *
+ * @return Entry
+ */
+ public function setGivenUrl($givenUrl)
+ {
+ $this->givenUrl = $givenUrl;
+ $this->hashedGivenUrl = UrlHasher::hashUrl($givenUrl);
+
+ return $this;
+ }
+
+ /**
+ * Get given url.
+ *
+ * @return string
+ */
+ public function getGivenUrl()
+ {
+ return $this->givenUrl;
+ }
+
+ /**
+ * @return string
+ */
+ public function getHashedUrl()
+ {
+ return $this->hashedUrl;
+ }
+
+ /**
+ * @param mixed $hashedUrl
+ *
+ * @return Entry
+ */
+ public function setHashedUrl($hashedUrl)
+ {
+ $this->hashedUrl = $hashedUrl;
+
+ return $this;
+ }