home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FCE Gold Plus
/
GOLD.iso
/
pc
/
shell.swf
/
scripts
/
__Packages
/
com
/
data
/
ObjectManager.as
< prev
next >
Wrap
Text File
|
2007-10-16
|
5KB
|
174 lines
class com.data.ObjectManager
{
function ObjectManager()
{
this.hObjectsMap = new com.util.HashMap();
this.c_objectFromXML = new Object();
}
function getObject(_strObjectName)
{
var _loc2_ = this;
var _loc3_ = com.data.DAO.getInstance();
var _loc1_ = null;
switch(_strObjectName)
{
case "Path":
_loc1_ = _loc2_.getXML(_loc3_,"PathXML:");
_loc2_.persistObject("PathXML",_loc1_);
break;
case "Login":
_loc1_ = _loc2_.getXML(_loc3_,"BaseXML:DOC[0]");
_loc2_.persistObject("BaseXML",_loc1_);
break;
case "Instruction":
_loc1_ = _loc2_.getXML(_loc3_,"BaseXML:DOC[1]");
_loc2_.persistObject("BaseXML",_loc1_);
break;
case "TestSelect":
_loc1_ = _loc2_.getXML(_loc3_,"TestXML:");
break;
case "RecordXML":
_loc1_ = _loc2_.getXML(_loc3_,"RecordXML:");
break;
case "ScoreXML":
_loc1_ = _loc2_.getXML(_loc3_,"ScoreXML:");
break;
case "Content":
_loc1_ = _loc2_.getXML(_loc3_,"ContentXML:DOC[0]");
break;
case "Test":
_loc1_ = _loc2_.getXML(_loc3_,"TestXML1:");
break;
case "ResultXML":
_loc1_ = _loc2_.getXML(_loc3_,"ReviewResultXML:");
break;
case "ShowResult":
_loc1_ = _loc2_.getXML(_loc3_,"BaseXML:DOC[2]");
break;
case "TestSound":
_loc1_ = _loc2_.getXML(_loc3_,"BaseXML:DOC[3]");
}
if(_loc1_ != null)
{
return _loc1_;
}
}
function getXML(_objDAOInstance, _strXML)
{
var _loc2_ = _objDAOInstance.getDataSet(_strXML);
var _loc1_ = this.xmlToObject(_loc2_);
return _loc1_;
}
function get xml()
{
return this.c_objXML;
}
function xmlToObject(sFile)
{
var _loc1_ = this;
_loc1_.c_objectFromXML = new Object();
_loc1_.c_objXML = sFile;
_loc1_.c_objectFromXML = _loc1_.translateXML();
return _loc1_.c_objectFromXML;
}
function translateXML(from, path, name, position)
{
var _loc2_ = path;
var _loc1_ = undefined;
var nodes;
var _loc3_ = undefined;
var old_path;
if(_loc2_ == undefined)
{
_loc2_ = this;
name = "c_objectFromXML";
}
_loc2_ = _loc2_[name];
if(from == undefined)
{
from = new XML(this.__get__xml());
from.ignoreWhite = true;
}
if(from.hasChildNodes())
{
nodes = from.childNodes;
if(position != undefined)
{
var old_path = _loc2_;
_loc2_ = _loc2_[position];
}
while(nodes.length > 0)
{
_loc3_ = nodes.shift();
_loc1_ = _loc3_.nodeName.split("-").join("_");
if(_loc1_ != undefined)
{
var __obj__ = new Object();
__obj__.attributes = _loc3_.attributes;
__obj__.data = _loc3_.firstChild.nodeValue;
if(position != undefined)
{
var old_path = _loc2_;
}
if(_loc2_[_loc1_] != undefined)
{
if(_loc2_[_loc1_].__proto__ == Array.prototype)
{
_loc2_[_loc1_].push(__obj__);
name = _loc3_.nodeName;
position = _loc2_[_loc1_].length - 1;
}
else
{
var copyObj = _loc2_[_loc1_];
_loc2_[_loc1_] = new Array();
_loc2_[_loc1_].push(copyObj);
_loc2_[_loc1_].push(__obj__);
name = _loc1_;
position = _loc2_[_loc1_].length - 1;
}
}
else
{
_loc2_[_loc1_] = __obj__;
name = _loc1_;
position = undefined;
}
}
if(_loc3_.hasChildNodes())
{
this.translateXML(_loc3_,_loc2_,name,position);
}
}
}
return this.c_objectFromXML;
}
function persistObject(strKey, _objData)
{
var _loc1_ = this;
var _loc2_ = strKey;
if(_loc1_.hObjectsMap["get"](_loc2_) == "undefined" || _loc1_.hObjectsMap["get"](_loc2_) == null)
{
_loc1_.hObjectsMap.put(_loc2_,_objData);
}
}
function returnPath(_strPathName)
{
var _loc1_ = this.hObjectsMap["get"]("PathXML");
switch(_strPathName)
{
case "XML":
return _loc1_.DOC.xmlpath.data;
case "RESULTXML":
return _loc1_.DOC.resultpath.data;
case "SWF":
return _loc1_.DOC.swfpath.data;
case "RESULTFOLDER":
return _loc1_.DOC.resultfolder.data;
case "IPPort":
return _loc1_.DOC.ip.data + "," + _loc1_.DOC.port.data;
default:
}
}
}