/** 由编辑器生成 * 不要修改 * 数据表缓存 */ let data: Map = new Map(); let tables: Map> = new Map(); export class TableUtil { /**获取一个表集*/ static getTables(type: (new () => T), ids: number[] | number): T[] { let map = tables.get(type); if (!map) { map = new Map(); tables.set(type, map); } let ts: T[] = []; if (ids instanceof Array) { for (let i: number = 0; i < ids.length; i++) { let t = map.get(ids[i]); if (!t) { t = new type(); t.init(ids[i]); map.set(ids[i], t); } ts.push(t); } } else if (typeof ids === "number") { for (let i: number = 0; i < ids; i++) { let t = map.get(i); if (!t) { t = new type(); t.init(i); map.set(i, t); } ts.push(t); } } return ts; } /**获取一个数据表id的数据 * @param type 表类型 * @param id 主key */ static getTable(type: (new () => T), id: number): T { let map = tables.get(type); if (!map) { map = new Map(); tables.set(type, map); } let t = map.get(id); if (!t) { t = new type(); t.init(id); map.set(id, t); } return t; } /** * 通知资源名从缓存中获取一个Json数据表 没有初始化 * @param name 资源名 */ static get(name: string): any { if (data.has(name)) { return data.get(name); } else { console.error("没有加载的资源:" + name); return null; } } static set(name: string, json: string): void { data.set(name, json); } static has(name: string): boolean { return data.has(name); } static delete(name: string): void { data.delete(name); } static clean(): void { data.clear(); tables.clear(); } }