, offset: number, count: number, comparer: Function, parameters: any): void {
var begin = offset;
var end = offset + count - 1;
this.pairSortSub(names, values, begin, end, this.nvl(comparer, this.sortComparerAsc), parameters);
}
//==========================================================
// 命名空间初始化处理。
//
// @param item 对象
// @param space 空间名称
//==========================================================
protected static namespaceInitialize(item: any, space: string): void {
for (var name in item) {
// 检查名称
if (name.indexOf('_') == 0) {
continue;
}
// 获得内容
var value = item[name];
if (value != null) {
// 检查是否已经设置过
// if (value.__spaceName != null) {
// continue;
// }
// 设置类型名称
var typeName: string = typeof value;
if ((typeName == 'object') || (typeName == 'function')) {
// 设置名称
var spaceName: string = space + '.' + name;
value.__className = name;
value.__spaceName = spaceName;
// 节点处理
if (typeName == 'object') {
this.namespaceInitialize(value, spaceName);
}
}
}
}
return null;
}
//==========================================================
// 命名空间构造处理。
//
// @param item 对象
//==========================================================
protected static namespaceConstructor(item: any): void {
for (var name in item) {
// 检查名称
if (name.indexOf('_') == 0) {
continue;
}
// 获得内容
var value = item[name];
if (value != null) {
// 检查是否已经设置过
if (value.__staticConstructor) {
continue;
}
// 设置类型名称
var typeName = typeof value;
if ((typeName == 'object') || (typeName == 'function')) {
// 节点处理
if (typeName == 'object') {
this.namespaceConstructor(value);
}
// 执行处理
if (value.staticConstructor) {
value.__staticConstructor = true;
value.staticConstructor();
}
}
}
}
return null;
}
//==========================================================
// 命名空间初始化处理。
//
// @param item 对象
// @param space 空间名称
//==========================================================
public static namespace(item: any, space: string): void {
item.__className = space;
item.__spaceName = space;
this.namespaceInitialize(item, space);
// this.namespaceConstructor(item);
}
//==========================================================
// 获得一个实例的调试信息。
// 调试信息的格式:类型名称<辅助信息>@唯一代码:内容。
//
// @param value 数据内容
// @return 调试信息
//==========================================================
public static dump(instance: any): string {
var result: string = null;
// 对象为空的情况
if (instance == null) {
result = '@null';
}
// 对象为一般实例的情况
var typeName = this.typeOf(instance);
switch (typeName) {
case 'Boolean':
// 数字的情况
return 'Boolean:' + instance;
case 'Number':
// 数字的情况
return 'Number:' + instance;
case 'String':
// 字符串的情况
return 'String<' + instance.length + '>:' + instance;
case 'Function':
// 字符串的情况
return 'Function<' + this.className(instance, true) + '>@' + this.instanceCode(instance);
case 'Html':
// HTML对象的情况
return 'Html<' + instance.tagName + '>@' + this.instanceCode(instance);
case 'Instance':
// HTML对象的情况
return this.className(instance, true) + '@' + this.instanceCode(instance);
default:
// 其他情况
return typeName + '@' + this.instanceCode(instance);
}
}
//==========================================================
// 释放一个对象。
//
// @param item 对象
// @param flag 标志
//==========================================================
public static dispose(item: any, flag: boolean = false): void {
if (item) {
if (!item.__dispose) {
item.dispose(flag);
item.__dispose = true;
} else {
throw new Error('Object has disposed.');
}
}
return null;
}
}