start; } /** * @param \DateTime $start * @return void */ public function setStart(\DateTime $start) { $this->start = $start; } /** * @return \DateTime end */ public function getEnd() { return $this->end; } /** * @param \DateTime $end * @return void */ public function setEnd(\DateTime $end) { $this->end = $end; } /** * @return Event */ public function getEvent(): Event { return $this->event; } /** * @param Event $event */ public function setEvent(Event $event): self { $this->event = $event; return $this; } /** * @param int $languageUid * @return void */ public function setLanguageUid($languageUid) { $this->_languageUid = $languageUid; } /** * @return int */ public function getLanguageUid() { return $this->_languageUid; } /** * @return string */ public function getCanceled(): string { return $this->canceled; } /** * @param string $canceled * @return void */ public function setCanceled(string $canceled) { $this->canceled = $canceled; } public function getPostponedDate(): ?Date { if ($this->getCanceled() === 'postponed') { return $this->postponedDate; } return null; } public function getOriginalDate(): ?Date { return $this->originalDate; } public function getCanceledLink(): string { if ($this->getCanceled() === 'canceled') { return $this->canceledLink; } return ''; } public static function createFromDestinationDataDate( array $date, bool $canceled ): self { return self::createFromDestinationData( new \DateTime($date['start'], new \DateTimeZone($date['tz'])), new \DateTime($date['end'], new \DateTimeZone($date['tz'])), $canceled ); } public static function createFromDestinationData( \DateTime $start, \DateTime $end, bool $canceled ): self { $date = new Date(); $date->setLanguageUid(-1); $date->setStart($start); $date->setEnd($end); if ($canceled) { $date->setCanceled('canceled'); } return $date; } }