<?php
							 | 
						|
								
							 | 
						|
								namespace OSM\Element\Member;
							 | 
						|
								
							 | 
						|
								class Member
							 | 
						|
								{
							 | 
						|
								    public int $ref;
							 | 
						|
								    public string $role;
							 | 
						|
								
							 | 
						|
								    public static function createFromArray($array)
							 | 
						|
								    {
							 | 
						|
								        assert(is_array($array));
							 | 
						|
								
							 | 
						|
								        $hasType = isset($array['type']);
							 | 
						|
								        assert($hasType);
							 | 
						|
								
							 | 
						|
								        $className = __NAMESPACE__.'\\'.ucfirst($array['type']);
							 | 
						|
								        $hasClass = class_exists($className);
							 | 
						|
								
							 | 
						|
								        $instance = new $className();
							 | 
						|
								
							 | 
						|
								        $hasRef = isset($array['ref']);
							 | 
						|
								        assert($hasRef);
							 | 
						|
								        $instance->ref = (int) $array['ref'];
							 | 
						|
								
							 | 
						|
								        $hasRole = isset($array['role']);
							 | 
						|
								        assert($hasRole);
							 | 
						|
								        $instance->role = (string) $array['role'];
							 | 
						|
								
							 | 
						|
								        $instance->completeFromArray($array);
							 | 
						|
								
							 | 
						|
								        return $instance;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function isSame(Member $other): bool
							 | 
						|
								    {
							 | 
						|
								        return $this->ref === $other->ref;
							 | 
						|
								    }
							 | 
						|
								}
							 |