address = $address; } /** * Get an address. */ public function getAddress(): string { return $this->address; } /** * Whether opted-out. */ public function isOptedOut(): bool { return $this->isOptedOut; } /** * Whether invalid. */ public function isInvalid(): bool { return $this->isInvalid; } /** * Clone set invalid. */ public function invalid(): self { $obj = $this->clone(); $obj->isInvalid = true; return $obj; } /** * Clone set not invalid. */ public function notInvalid(): self { $obj = $this->clone(); $obj->isInvalid = false; return $obj; } /** * Clone set opted-out. */ public function optedOut(): self { $obj = $this->clone(); $obj->isOptedOut = true; return $obj; } /** * Clone set not opted-out. */ public function notOptedOut(): self { $obj = $this->clone(); $obj->isOptedOut = false; return $obj; } /** * Create from an address. */ public static function create(string $address): self { return new self($address); } private function clone(): self { $obj = new self($this->address); $obj->isInvalid = $this->isInvalid; $obj->isOptedOut = $this->isOptedOut; return $obj; } }