*/ private $data; private string $name; private function __construct() { } /** * @param array $raw */ public static function fromRaw(array $raw, string $name): self { $obj = new self(); $obj->data = $raw; $obj->name = $name; return $obj; } /** * Get a name. */ public function getName(): string { return $this->name; } /** * Get a key. */ public function getKey(): string { return $this->data['key']; } /** * Whether is unique. */ public function isUnique(): bool { $type = $this->data['type'] ?? null; return $type === 'unique'; } /** * Get a column list. * * @return string[] */ public function getColumnList(): array { return $this->data['columns'] ?? []; } }