validFrom = new \DateTime(); } /** * Get id * * @return integer */ public function getId() { return $this->id; } /** * Set streetAddress1 (legacy function) * * @param string $streetAddress1 * * @return Address */ public function setStreetAddress1($streetAddress1) { $this->street = $streetAddress1 === NULL ? '' : $streetAddress1; return $this; } /** * Get streetAddress1 (legacy function) * * @return string */ public function getStreetAddress1() { return $this->street; } /** * Set streetAddress2 (legacy function) * * @param string $streetAddress2 * * @return Address */ public function setStreetAddress2($streetAddress2) { $this->streetNumber = $streetAddress2 === NULL ? '' : $streetAddress2; return $this; } /** * Get streetAddress2 (legacy function) * * @return string */ public function getStreetAddress2() { return $this->streetNumber; } /** * Set postcode * * @param PostalCode $postcode * * @return Address */ public function setPostcode(PostalCode $postcode = null) { $this->postcode = $postcode; return $this; } /** * Get postcode * * @return PostalCode */ public function getPostcode() { return $this->postcode; } /** * @return \DateTime */ public function getValidFrom() { return $this->validFrom; } /** * @param \DateTime $validFrom * @return Address */ public function setValidFrom(\DateTime $validFrom) { $this->validFrom = $validFrom; return $this; } /** * Get IsNoAddress * * Indicate true if the address is a fake address (homeless, ...) * * @return bool */ public function getIsNoAddress(): bool { return $this->isNoAddress; } /** * @return bool */ public function isNoAddress(): bool { return $this->getIsNoAddress(); } /** * Set IsNoAddress * * Indicate true if the address is a fake address (homeless, ...) * * @param bool $isNoAddress * @return $this */ public function setIsNoAddress(bool $isNoAddress): self { $this->isNoAddress = $isNoAddress; return $this; } /** * Get customs informations in the address * * @return array */ public function getCustoms(): array { return $this->customs; } /** * Store custom informations in the address * * @param array $customs * @return $this */ public function setCustoms(array $customs): self { $this->customs = $customs; return $this; } /** * Validate the address. * * Check that: * * * if the address is not home address: * * the postal code is present * * the valid from is not null * * the address street 1 is greater than 2 * * @param ExecutionContextInterface $context * @param array $payload */ public function validate(ExecutionContextInterface $context, $payload) { if (!$this->getValidFrom() instanceof \DateTime) { $context ->buildViolation("address.date-should-be-set") ->atPath('validFrom') ->addViolation(); } if ($this->isNoAddress()) { return; } if (empty($this->getStreetAddress1())) { $context ->buildViolation("address.street1-should-be-set") ->atPath('streetAddress1') ->addViolation(); } if (!$this->getPostcode() instanceof PostalCode) { $context ->buildViolation("address.postcode-should-be-set") ->atPath('postCode') ->addViolation(); } } /** * @param Address $original * @return Address */ public static function createFromAddress(Address $original) : Address { return (new Address()) ->setPostcode($original->getPostcode()) ->setStreetAddress1($original->getStreetAddress1()) ->setStreetAddress2($original->getStreetAddress2()) ->setValidFrom($original->getValidFrom()) ; } public static function createFromAddressReference(AddressReference $original): Address { return (new Address()) ->setPoint($original->getPoint()) ->setPostcode($original->getPostcode()) ->setStreet($original->getStreet()) ->setStreetNumber($original->getStreetNumber()) ; } public function getStreet(): ?string { return $this->street; } public function setStreet(string $street): self { $this->street = $street; return $this; } public function getStreetNumber(): ?string { return $this->streetNumber; } public function setStreetNumber(string $streetNumber): self { $this->streetNumber = $streetNumber; return $this; } public function getFloor(): ?string { return $this->floor; } public function setFloor(?string $floor): self { $this->floor = $floor; return $this; } public function getCorridor(): ?string { return $this->corridor; } public function setCorridor(?string $corridor): self { $this->corridor = $corridor; return $this; } public function getSteps(): ?string { return $this->steps; } public function setSteps(?string $steps): self { $this->steps = $steps; return $this; } public function getBuildingName(): ?string { return $this->buildingName; } public function setBuildingName(?string $buildingName): self { $this->buildingName = $buildingName; return $this; } public function getFlat(): ?string { return $this->flat; } public function setFlat(?string $flat): self { $this->flat = $flat; return $this; } public function getDistribution(): ?string { return $this->distribution; } public function setDistribution(?string $distribution): self { $this->distribution = $distribution; return $this; } public function getExtra(): ?string { return $this->extra; } public function setExtra(?string $extra): self { $this->extra = $extra; return $this; } public function getValidTo(): ?\DateTimeInterface { return $this->validTo; } public function setValidTo(\DateTimeInterface $validTo): self { $this->validTo = $validTo; return $this; } public function getPoint(): ?Point { return $this->point; } public function setPoint(?Point $point): self { $this->point = $point; return $this; } public function getLinkedToThirdParty() { return $this->linkedToThirdParty; } public function setLinkedToThirdParty($linkedToThirdParty): self { $this->linkedToThirdParty = $linkedToThirdParty; return $this; } }