Created
January 19, 2013 02:47
-
-
Save sonygod/4570433 to your computer and use it in GitHub Desktop.
Data control
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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