import {RuntimeUtil} from '../RuntimeUtil'; import {HashMap} from './HashMap'; import {StringBuffer} from './StringBuffer'; //========================================================== // 名称和内容的关联保存表的工具类。 // // @reference // @author maocy // @version 141229 //========================================================== export class Dictionary extends HashMap { //========================================================== // 按照名称排序。 // // @method //========================================================== public sortByName(comparer, parameters) { RuntimeUtil.pairSort(this._names, this._values, 0, this._count, comparer, parameters); this.rebuild(); } //========================================================== // 将内部所有名称关联成一个字符串。 // // @method // @param split:String 分隔符 // @return String 字符串 //========================================================== public joinName(split) { var source = new StringBuffer(); var count = this._count; for (var i: number = 0; i < count; i++) { if (i > 0) { source.append(split); } source.append(this._names[i]); } return source.flush(); } //========================================================== // 获得数组的内部信息。 // // @method // @return String 字符串 //========================================================== public dump(): string { var o = this; var result: StringBuffer = new StringBuffer(); var count = o._count; result.append(RuntimeUtil.className(o), ': ', count); if (count > 0) { var names = o._names; var values = o._values; result.append(' {\n'); for (var i = 0; i < count; i++) { result.append(' ', names[i], '=[', values[i], ']\n'); } result.append('}'); } return result.flush(); } }