home *** CD-ROM | disk | FTP | other *** search
/ FCE Gold Plus / GOLD.iso / pc / shell.swf / scripts / __Packages / com / data / ObjectManager.as < prev    next >
Text File  |  2007-10-16  |  5KB  |  174 lines

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