Skip to content

Instantly share code, notes, and snippets.

@sonygod
Created January 19, 2013 02:47
Show Gist options
  • Save sonygod/4570433 to your computer and use it in GitHub Desktop.
Save sonygod/4570433 to your computer and use it in GitHub Desktop.
Data control
package com.lyo.game.bwdl.game.task.utils {
public final class DataManager {
private static const DEFAULT_FIELD:String = "";
private static var _tables_pool:Object = {};
/*查找并获得对象数组
*
* @aTableName:表名
* @aColumnName:标题列名称
* @aValue:查找的值
* @aField
* [[],[]]
* {id:,name,}
* 返回一个对象数组[{obj:}];
*/
private static var tempPoor:Object = {};
public static function get(aTableName:String, aColumnName:String, aValue:*, aField:String = DEFAULT_FIELD):Array {
//
//csv value will not change in runtime..so ..
if (tempPoor.hasOwnProperty(aTableName + aColumnName + aValue + aField)) {
return tempPoor[aTableName + aColumnName + aValue + aField];
}
var tWhere:Object = {};
tWhere[aColumnName] = String(aValue);
return tempPoor[aTableName + aColumnName + aValue + aField] = select(aTableName, tWhere, aField);
}
public static function select(aTableName:String, aWhereObj:Object, aField:String = DEFAULT_FIELD):Array {
// ////trace(aTableName, aWhereObj, aField);
if (_tables_pool.hasOwnProperty(aField) && _tables_pool[aField].hasOwnProperty(aTableName)) {
var tRow:Object, tColumn:String, tValue:String, tResult:Array = [], tIsMatch:Boolean;
for each (tRow in _tables_pool[aField][aTableName]) {
tIsMatch = true;
for (tColumn in aWhereObj) {
// ////trace(tColumn, aWhereObj[tColumn], tRow[tColumn]);
if (tRow.hasOwnProperty(tColumn)) {
if (tRow[tColumn] != aWhereObj[tColumn]) {
tIsMatch = false;
break;
}
} else
return null;
}
if (tIsMatch)
tResult.push(tRow);
}
return tResult;
}
return null;
}
public static function unloadTable(aTableName:String, aField:String = DEFAULT_FIELD):void {
if (_tables_pool.hasOwnProperty(aField) && _tables_pool[aField].hasOwnProperty(aTableName))
delete _tables_pool[aField][aTableName];
}
public static function getTable(aTableName:String, aField:String = DEFAULT_FIELD):Array {
if (_tables_pool.hasOwnProperty(aField) && _tables_pool[aField].hasOwnProperty(aTableName))
return _tables_pool[aField][aTableName];
return null;
}
//add to array poor.
public static function addToTable(aTableName:String, data:Array, aField:String = DEFAULT_FIELD):void {
if (!_tables_pool.hasOwnProperty(aField)) {
_tables_pool [aField] = {};
}
_tables_pool[aField][aTableName] = data
}
//填充整个表,表里面包括小表。一次性填充。
public static function addObjectsToTable(objName:String, data:Object):void {
_tables_pool[objName] = data
}
public static function haveTable(aTableName:String, aField:String = DEFAULT_FIELD):Boolean {
if (_tables_pool.hasOwnProperty(aField)) {
if (_tables_pool[aField][aTableName])
return true;
}
return false;
}
public static function get tables_pool():Object {
return _tables_pool;
}
public static function set tables_pool(value:Object):void {
if (tables_pool == {})
_tables_pool = value;
else {
for (var i:String in value) {
tables_pool[i] = value[i];
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment