documents = new ArrayCollection(); } /** * @return int|null */ public function getId(): ?int { return $this->id; } /** * @return AccompanyingPeriodWork|null */ public function getAccompanyingPeriodWork(): ?AccompanyingPeriodWork { return $this->accompanyingPeriodWork; } /** * @param AccompanyingPeriodWork|null $accompanyingPeriodWork * @return AccompanyingPeriodWorkEvaluation */ public function setAccompanyingPeriodWork(?AccompanyingPeriodWork $accompanyingPeriodWork): AccompanyingPeriodWorkEvaluation { if ( $accompanyingPeriodWork instanceof AccompanyingPeriodWork && $this->accompanyingPeriodWork instanceof AccompanyingPeriodWork && $this->accompanyingPeriodWork->getId() !== $accompanyingPeriodWork->getId()) { throw new \RuntimeException("Changing the ". "accompanyingPeriodWork is not allowed"); } $this->accompanyingPeriodWork = $accompanyingPeriodWork; return $this; } /** * @return Evaluation|null */ public function getEvaluation(): ?Evaluation { return $this->evaluation; } /** * @param Evaluation|null $evaluation * @return AccompanyingPeriodWorkEvaluation */ public function setEvaluation(?Evaluation $evaluation): AccompanyingPeriodWorkEvaluation { if ( ($evaluation instanceof Evaluation && $this->evaluation instanceof Evaluation && $evaluation->getId() !== $this->evaluation->getId()) || ($this->evaluation instanceof Evaluation && null === $evaluation) ) { $cl = AccompanyingPeriodWorkEvaluation::class; throw new \LogicException("once set, an $cl cannot change or remove the linked Evaluation::class"); } $this->evaluation = $evaluation; return $this; } /** * @return DateTimeImmutable|null */ public function getStartDate(): ?DateTimeImmutable { return $this->startDate; } /** * @param DateTimeImmutable|null $startDate * @return AccompanyingPeriodWorkEvaluation */ public function setStartDate(?DateTimeImmutable $startDate): AccompanyingPeriodWorkEvaluation { $this->startDate = $startDate; return $this; } /** * @return DateTimeImmutable|null */ public function getEndDate(): ?DateTimeImmutable { return $this->endDate; } /** * @param DateTimeImmutable|null $endDate * @return AccompanyingPeriodWorkEvaluation */ public function setEndDate(?DateTimeImmutable $endDate): AccompanyingPeriodWorkEvaluation { $this->endDate = $endDate; return $this; } /** * @return DateTimeImmutable|null */ public function getMaxDate(): ?DateTimeImmutable { return $this->maxDate; } /** * @param DateTimeImmutable|null $maxDate * @return AccompanyingPeriodWorkEvaluation */ public function setMaxDate(?DateTimeImmutable $maxDate): AccompanyingPeriodWorkEvaluation { $this->maxDate = $maxDate; return $this; } /** * @return DateInterval|null */ public function getWarningInterval(): ?DateInterval { return $this->warningInterval; } /** * @param DateInterval|null $warningInterval * @return AccompanyingPeriodWorkEvaluation */ public function setWarningInterval(?DateInterval $warningInterval): AccompanyingPeriodWorkEvaluation { $this->warningInterval = $warningInterval; return $this; } /** * @return string */ public function getComment(): string { return $this->comment; } /** * @param string $comment * @return AccompanyingPeriodWorkEvaluation */ public function setComment(string $comment): AccompanyingPeriodWorkEvaluation { $this->comment = $comment; return $this; } /** * @return User|null */ public function getCreatedBy(): ?User { return $this->createdBy; } /** * @param User|null $createdBy * @return AccompanyingPeriodWorkEvaluation */ public function setCreatedBy(?User $createdBy): AccompanyingPeriodWorkEvaluation { $this->createdBy = $createdBy; return $this; } /** * @return DateTimeImmutable|null */ public function getCreatedAt(): ?DateTimeImmutable { return $this->createdAt; } /** * @param DateTimeImmutable|null $createdAt * @return AccompanyingPeriodWorkEvaluation */ public function setCreatedAt(\DateTimeInterface $createdAt): self { $this->createdAt = $createdAt; return $this; } /** * @return User|null */ public function getUpdatedBy(): ?User { return $this->updatedBy; } /** * @param User|null $updatedBy * @return AccompanyingPeriodWorkEvaluation */ public function setUpdatedBy(?User $updatedBy): AccompanyingPeriodWorkEvaluation { $this->updatedBy = $updatedBy; return $this; } /** * @return DateTimeImmutable|null */ public function getUpdatedAt(): ?DateTimeImmutable { return $this->updatedAt; } /** * @param DateTimeImmutable|null $updatedAt * @return AccompanyingPeriodWorkEvaluation */ public function setUpdatedAt(\DateTimeInterface $updatedAt): self { $this->updatedAt = $updatedAt; return $this; } /** * @return Collection */ public function getDocuments() { return $this->documents; } public function addDocument(AccompanyingPeriodWorkEvaluationDocument $document): self { if (!$this->documents->contains($document)) { $this->documents[] = $document; $document->setAccompanyingPeriodWorkEvaluation($this); } return $this; } public function removeDocument(AccompanyingPeriodWorkEvaluationDocument $document): self { $this->documents->removeElement($document); return $this; } /** * Arbitrary data, used for client * * @return mixed */ public function getKey() { return $this->key; } /** * Arbitrary data, used for client * * @param mixed $key * @return AccompanyingPeriodWorkEvaluation */ public function setKey($key): self { $this->key = $key; return $this; } }