diff --git a/src/GeographicalSubdivision.php b/src/GeographicalSubdivision.php index 949f923..ec4b4ac 100644 --- a/src/GeographicalSubdivision.php +++ b/src/GeographicalSubdivision.php @@ -4,10 +4,17 @@ namespace MLocati\ComuniItaliani; -final class GeographicalSubdivision extends TerritoryWithChildren +final class GeographicalSubdivision implements TerritoryWithChildren { + private array $data; + private ?array $regions = null; + public function __construct(array $data) + { + $this->data = $data; + } + /** * {@inheritdoc} * diff --git a/src/Municipality.php b/src/Municipality.php index 00efd4d..183628f 100644 --- a/src/Municipality.php +++ b/src/Municipality.php @@ -4,13 +4,15 @@ namespace MLocati\ComuniItaliani; -final class Municipality extends Territory +final class Municipality implements Territory { + private array $data; + private Province $province; public function __construct(array $data, Province $province) { - parent::__construct($data); + $this->data = $data; $this->province = $province; } diff --git a/src/Province.php b/src/Province.php index beef931..c480e51 100644 --- a/src/Province.php +++ b/src/Province.php @@ -4,15 +4,17 @@ namespace MLocati\ComuniItaliani; -final class Province extends TerritoryWithChildren +final class Province implements TerritoryWithChildren { + private array $data; + private Region $region; private ?array $municipalities = null; public function __construct(array $data, Region $region) { - parent::__construct($data); + $this->data = $data; $this->region = $region; } diff --git a/src/Region.php b/src/Region.php index 54e7d96..6de85bc 100644 --- a/src/Region.php +++ b/src/Region.php @@ -4,15 +4,17 @@ namespace MLocati\ComuniItaliani; -final class Region extends TerritoryWithChildren +final class Region implements TerritoryWithChildren { + private array $data; + private GeographicalSubdivision $geographicalSubdivision; private ?array $provinces = null; public function __construct(array $data, GeographicalSubdivision $geographicalSubdivision) { - parent::__construct($data); + $this->data = $data; $this->geographicalSubdivision = $geographicalSubdivision; } diff --git a/src/Territory.php b/src/Territory.php index f4fa15e..3681975 100644 --- a/src/Territory.php +++ b/src/Territory.php @@ -4,23 +4,16 @@ namespace MLocati\ComuniItaliani; -abstract class Territory +interface Territory { - protected array $data; - - public function __construct(array $data) - { - $this->data = $data; - } - /** * @return string|int */ - abstract public function getID(); + public function getID(); - abstract public function getParent(): ?Territory; + public function getParent(): ?Territory; - abstract public function getName(): string; + public function getName(): string; - abstract public function __toString(): string; + public function __toString(): string; } diff --git a/src/TerritoryWithChildren.php b/src/TerritoryWithChildren.php index 05cee63..d481202 100644 --- a/src/TerritoryWithChildren.php +++ b/src/TerritoryWithChildren.php @@ -4,10 +4,10 @@ namespace MLocati\ComuniItaliani; -abstract class TerritoryWithChildren extends Territory +interface TerritoryWithChildren extends Territory { /** * @return \MLocati\ComuniItaliani\Territory[] */ - abstract public function getChildren(): array; + public function getChildren(): array; }