home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / air / update / core / UpdaterState.as < prev   
Encoding:
Text File  |  2010-06-23  |  4.2 KB  |  130 lines

  1. package air.update.core
  2. {
  3.    import air.update.descriptors.StateDescriptor;
  4.    import air.update.logging.Logger;
  5.    import air.update.utils.Constants;
  6.    import air.update.utils.FileUtils;
  7.    import flash.filesystem.File;
  8.    
  9.    public class UpdaterState
  10.    {
  11.       private static var logger:Logger = Logger.getLogger("air.update.core.UpdaterState");
  12.       
  13.       private var _descriptor:StateDescriptor;
  14.       
  15.       public function UpdaterState()
  16.       {
  17.          super();
  18.       }
  19.       
  20.       public function removeAllFailedUpdates() : void
  21.       {
  22.          this.descriptor.removeAllFailedUpdates();
  23.       }
  24.       
  25.       public function resetUpdateData() : void
  26.       {
  27.          this.descriptor.currentVersion = "";
  28.          this.descriptor.previousVersion = "";
  29.          this.descriptor.storage = null;
  30.          FileUtils.deleteFile(FileUtils.getLocalUpdateFile());
  31.          FileUtils.deleteFile(FileUtils.getLocalDescriptorFile());
  32.          this.descriptor.updaterLaunched = false;
  33.       }
  34.       
  35.       public function load() : void
  36.       {
  37.          var updateFile:File;
  38.          var xml:XML = null;
  39.          var storageFile:File = FileUtils.getStorageStateFile();
  40.          var documentsFile:File = FileUtils.getDocumentsStateFile();
  41.          if(!storageFile.exists)
  42.          {
  43.             if(!documentsFile.exists)
  44.             {
  45.                this._descriptor = StateDescriptor.defaultState();
  46.                this.saveToStorage();
  47.             }
  48.             else
  49.             {
  50.                try
  51.                {
  52.                   xml = FileUtils.readXMLFromFile(documentsFile);
  53.                   this._descriptor = new StateDescriptor(xml);
  54.                   this._descriptor.validate();
  55.                   this.saveToStorage();
  56.                }
  57.                catch(e:Error)
  58.                {
  59.                   logger.fine("Invalid state: " + e);
  60.                   _descriptor = StateDescriptor.defaultState();
  61.                   saveToStorage();
  62.                }
  63.             }
  64.          }
  65.          else
  66.          {
  67.             try
  68.             {
  69.                xml = FileUtils.readXMLFromFile(storageFile);
  70.                this._descriptor = new StateDescriptor(xml);
  71.                this._descriptor.validate();
  72.             }
  73.             catch(e:Error)
  74.             {
  75.                logger.fine("Invalid state: " + e);
  76.                _descriptor = StateDescriptor.defaultState();
  77.                saveToStorage();
  78.             }
  79.          }
  80.          updateFile = FileUtils.getLocalUpdateFile();
  81.          if(this.descriptor.currentVersion && !updateFile.exists && !this.descriptor.updaterLaunched)
  82.          {
  83.             logger.fine("Missing update file");
  84.             this._descriptor = StateDescriptor.defaultState();
  85.             this.saveToStorage();
  86.          }
  87.          FileUtils.deleteFile(documentsFile);
  88.       }
  89.       
  90.       public function addFailedUpdate(param1:String) : void
  91.       {
  92.          this.descriptor.addFailedUpdate(param1);
  93.       }
  94.       
  95.       public function saveToDocuments() : void
  96.       {
  97.          var _loc1_:File = FileUtils.getDocumentsStateFile();
  98.          FileUtils.saveXMLToFile(this._descriptor.getXML(),_loc1_);
  99.       }
  100.       
  101.       public function removePreviousStorageData(param1:File) : void
  102.       {
  103.          if(!param1 || !param1.exists)
  104.          {
  105.             return;
  106.          }
  107.          var _loc2_:File = param1.resolvePath(Constants.UPDATER_FOLDER + "/" + Constants.STATE_FILE);
  108.          FileUtils.deleteFile(_loc2_);
  109.          _loc2_ = param1.resolvePath(Constants.UPDATER_FOLDER + "/" + Constants.UPDATE_LOCAL_FILE);
  110.          FileUtils.deleteFile(_loc2_);
  111.          _loc2_ = param1.resolvePath(Constants.UPDATER_FOLDER + "/" + Constants.DESCRIPTOR_LOCAL_FILE);
  112.          FileUtils.deleteFile(_loc2_);
  113.          _loc2_ = param1.resolvePath(Constants.UPDATER_FOLDER);
  114.          FileUtils.deleteFolder(_loc2_);
  115.       }
  116.       
  117.       public function saveToStorage() : void
  118.       {
  119.          var _loc1_:File = FileUtils.getStorageStateFile();
  120.          FileUtils.saveXMLToFile(this._descriptor.getXML(),_loc1_);
  121.       }
  122.       
  123.       public function get descriptor() : StateDescriptor
  124.       {
  125.          return this._descriptor;
  126.       }
  127.    }
  128. }
  129.  
  130.