home *** CD-ROM | disk | FTP | other *** search
/ FCE Gold Plus / GOLD.iso / pc / fscommand / linux / main.swf / scripts / __Packages / com / data / ObjectManager.as < prev    next >
Encoding:
Text File  |  2007-09-06  |  5.3 KB  |  177 lines

  1. class com.data.ObjectManager
  2. {
  3.    var hObjectsMap;
  4.    var c_objectFromXML;
  5.    var c_objXML;
  6.    function ObjectManager()
  7.    {
  8.       this.hObjectsMap = new com.util.HashMap();
  9.       this.c_objectFromXML = new Object();
  10.    }
  11.    function getObject(_strObjectName)
  12.    {
  13.       var _loc2_ = this;
  14.       var _loc3_ = com.data.DAO.getInstance();
  15.       var _loc1_ = null;
  16.       switch(_strObjectName)
  17.       {
  18.          case "Path":
  19.             _loc1_ = _loc2_.getXML(_loc3_,"PathXML:");
  20.             _loc2_.persistObject("PathXML",_loc1_);
  21.             break;
  22.          case "Login":
  23.             _loc1_ = _loc2_.getXML(_loc3_,"BaseXML:DOC[0]");
  24.             _loc2_.persistObject("BaseXML",_loc1_);
  25.             break;
  26.          case "Instruction":
  27.             _loc1_ = _loc2_.getXML(_loc3_,"BaseXML:DOC[1]");
  28.             _loc2_.persistObject("BaseXML",_loc1_);
  29.             break;
  30.          case "TestSelect":
  31.             _loc1_ = _loc2_.getXML(_loc3_,"TestXML:");
  32.             break;
  33.          case "RecordXML":
  34.             _loc1_ = _loc2_.getXML(_loc3_,"RecordXML:");
  35.             break;
  36.          case "ScoreXML":
  37.             _loc1_ = _loc2_.getXML(_loc3_,"ScoreXML:");
  38.             break;
  39.          case "Content":
  40.             _loc1_ = _loc2_.getXML(_loc3_,"ContentXML:DOC[0]");
  41.             break;
  42.          case "Test":
  43.             _loc1_ = _loc2_.getXML(_loc3_,"TestXML1:");
  44.             break;
  45.          case "ResultXML":
  46.             _loc1_ = _loc2_.getXML(_loc3_,"ReviewResultXML:");
  47.             break;
  48.          case "ShowResult":
  49.             _loc1_ = _loc2_.getXML(_loc3_,"BaseXML:DOC[2]");
  50.             break;
  51.          case "TestSound":
  52.             _loc1_ = _loc2_.getXML(_loc3_,"BaseXML:DOC[3]");
  53.       }
  54.       if(_loc1_ != null)
  55.       {
  56.          return _loc1_;
  57.       }
  58.    }
  59.    function getXML(_objDAOInstance, _strXML)
  60.    {
  61.       var _loc2_ = _objDAOInstance.getDataSet(_strXML);
  62.       var _loc1_ = this.xmlToObject(_loc2_);
  63.       return _loc1_;
  64.    }
  65.    function get xml()
  66.    {
  67.       return this.c_objXML;
  68.    }
  69.    function xmlToObject(sFile)
  70.    {
  71.       var _loc1_ = this;
  72.       _loc1_.c_objectFromXML = new Object();
  73.       _loc1_.c_objXML = sFile;
  74.       _loc1_.c_objectFromXML = _loc1_.translateXML();
  75.       return _loc1_.c_objectFromXML;
  76.    }
  77.    function translateXML(from, path, name, position)
  78.    {
  79.       var _loc2_ = path;
  80.       var _loc1_ = undefined;
  81.       var nodes;
  82.       var _loc3_ = undefined;
  83.       var old_path;
  84.       if(_loc2_ == undefined)
  85.       {
  86.          _loc2_ = this;
  87.          name = "c_objectFromXML";
  88.       }
  89.       _loc2_ = _loc2_[name];
  90.       if(from == undefined)
  91.       {
  92.          from = new XML(this.xml);
  93.          from.ignoreWhite = true;
  94.       }
  95.       if(from.hasChildNodes())
  96.       {
  97.          nodes = from.childNodes;
  98.          if(position != undefined)
  99.          {
  100.             var old_path = _loc2_;
  101.             _loc2_ = _loc2_[position];
  102.          }
  103.          while(nodes.length > 0)
  104.          {
  105.             _loc3_ = nodes.shift();
  106.             _loc1_ = _loc3_.nodeName.split("-").join("_");
  107.             if(_loc1_ != undefined)
  108.             {
  109.                var __obj__ = new Object();
  110.                __obj__.attributes = _loc3_.attributes;
  111.                __obj__.data = _loc3_.firstChild.nodeValue;
  112.                if(position != undefined)
  113.                {
  114.                   var old_path = _loc2_;
  115.                }
  116.                if(_loc2_[_loc1_] != undefined)
  117.                {
  118.                   if(_loc2_[_loc1_].__proto__ == Array.prototype)
  119.                   {
  120.                      _loc2_[_loc1_].push(__obj__);
  121.                      name = _loc3_.nodeName;
  122.                      position = _loc2_[_loc1_].length - 1;
  123.                   }
  124.                   else
  125.                   {
  126.                      var copyObj = _loc2_[_loc1_];
  127.                      _loc2_[_loc1_] = new Array();
  128.                      _loc2_[_loc1_].push(copyObj);
  129.                      _loc2_[_loc1_].push(__obj__);
  130.                      name = _loc1_;
  131.                      position = _loc2_[_loc1_].length - 1;
  132.                   }
  133.                }
  134.                else
  135.                {
  136.                   _loc2_[_loc1_] = __obj__;
  137.                   name = _loc1_;
  138.                   position = undefined;
  139.                }
  140.             }
  141.             if(_loc3_.hasChildNodes())
  142.             {
  143.                this.translateXML(_loc3_,_loc2_,name,position);
  144.             }
  145.          }
  146.       }
  147.       return this.c_objectFromXML;
  148.    }
  149.    function persistObject(strKey, _objData)
  150.    {
  151.       var _loc1_ = this;
  152.       var _loc2_ = strKey;
  153.       if(_loc1_.hObjectsMap["get"](_loc2_) == "undefined" || _loc1_.hObjectsMap["get"](_loc2_) == null)
  154.       {
  155.          _loc1_.hObjectsMap.put(_loc2_,_objData);
  156.       }
  157.    }
  158.    function returnPath(_strPathName)
  159.    {
  160.       var _loc1_ = this.hObjectsMap["get"]("PathXML");
  161.       switch(_strPathName)
  162.       {
  163.          case "XML":
  164.             return _loc1_.DOC.xmlpath.data;
  165.          case "RESULTXML":
  166.             return _loc1_.DOC.resultpath.data;
  167.          case "SWF":
  168.             return _loc1_.DOC.swfpath.data;
  169.          case "RESULTFOLDER":
  170.             return _loc1_.DOC.resultfolder.data;
  171.          case "IPPort":
  172.             return _loc1_.DOC.ip.data + "," + _loc1_.DOC.port.data;
  173.          default:
  174.       }
  175.    }
  176. }
  177.