<?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);
|
|
}
|
|
|
|
}
|