label = $label; $this->code = $code; $this->validFrom = $validFrom; $this->description = $description; $this->visibility = $visibility; } public function getId(): ?int { return $this->id; } public function getLabel(): string { return $this->label; } public function setLabel(string $label): void { $this->label = $label; } public function getCode(): string { return $this->code; } public function setCode(string $code): void { $this->code = $code; } public function getValidFrom(): \DateTimeImmutable { return $this->validFrom; } public function setValidFrom(\DateTimeImmutable $validFrom): void { $this->validFrom = $validFrom; } public function getDescription(): ?string { return $this->description; } public function setDescription(?string $description): void { $this->description = $description; } public function getVisibility(): CodeVisibility { return $this->visibility; } public function setVisibility(CodeVisibility $visibility): void { $this->visibility = $visibility; } /** Not yet in force: it is listed so nobody is surprised on the day it takes over. */ public function isUpcoming(\DateTimeImmutable $on): bool { return $this->validFrom > $on; } }