* @license http://www.apache.org/licenses/LICENSE-2.0 * @package EPGService\Entities\Program */ final class CreditEntity { /** * @var string */ private string $name; /** * @var string */ private string $type; /** * @param array $payload */ private function __construct(array $payload) { $this->name = $payload['name']; $this->type = $payload['type']; } /** * @param array $payload * * @return \EPGService\Entities\Program\CreditEntity * * @throws \RuntimeException */ public static function create(array $payload): CreditEntity { if (!is_string($payload['name'])) { throw new RuntimeException('blah-blah-blah'); } if (!is_string($payload['type'])) { throw new RuntimeException('blah-blah-blah'); } return new CreditEntity($payload); } /** * @param string $name * * @return mixed */ public function __get(string $name) { return $this->$name; } /** * @param string $name * @param mixed $value * * @throws \RuntimeException */ public function __set(string $name, $value) { throw new RuntimeException('blah-blah-blah'); } }