import { IRoomObjectModel } from '../../api'; export class RoomObjectModel implements IRoomObjectModel { private _map: Map; private _updateCounter: number; constructor() { this._map = new Map(); this._updateCounter = 0; } public dispose(): void { this._map.clear(); this._updateCounter = 0; } public getValue(key: string): T { const existing = this._map.get(key); return (existing as T); } public setValue(key: string, value: T): void { if (this._map.has(key)) { if (this._map.get(key) === value) return; } this._map.set(key, (value as T)); this._updateCounter++; } public removeKey(key: string): void { if (!key) return; this._map.delete(key); this._updateCounter++; } public get updateCounter(): number { return this._updateCounter; } }