home *** CD-ROM | disk | FTP | other *** search
/ Freelog 112 / FreelogNo112-NovembreDecembre2012.iso / Multimedia / Songbird / Songbird_2.0.0-2311_windows-i686-msvc8.exe / components / sbMigrate070To08pre1.js < prev    next >
Text File  |  2012-06-08  |  4KB  |  123 lines

  1. /*
  2. //
  3. // BEGIN SONGBIRD GPL
  4. //
  5. // This file is part of the Songbird web player.
  6. //
  7. // Copyright(c) 2005-2008 POTI, Inc.
  8. // http://songbirdnest.com
  9. //
  10. // This file may be licensed under the terms of of the
  11. // GNU General Public License Version 2 (the "GPL").
  12. //
  13. // Software distributed under the License is distributed
  14. // on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
  15. // express or implied. See the GPL for the specific language
  16. // governing rights and limitations.
  17. //
  18. // You should have received a copy of the GPL along with this
  19. // program. If not, go to http://www.gnu.org/licenses/gpl.html
  20. // or write to the Free Software Foundation, Inc.,
  21. // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  22. //
  23. // END SONGBIRD GPL
  24. //
  25. */
  26.  
  27. Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
  28. Components.utils.import("resource://app/jsmodules/ArrayConverter.jsm");
  29. Components.utils.import("resource://app/jsmodules/sbLocalDatabaseMigrationUtils.jsm");
  30. Components.utils.import("resource://app/jsmodules/SBJobUtils.jsm");
  31.  
  32. const Cc = Components.classes;
  33. const Ci = Components.interfaces;
  34. const Cr = Components.results;
  35.  
  36. function LOG(s) {
  37.   dump("----++++----++++\sbLocalDatabaseMigrate070to08pre1 ---> " + 
  38.        s + 
  39.        "\n----++++----++++\n");
  40. }
  41.  
  42. function sbLocalDatabaseMigrate070to08pre1()
  43. {
  44.   SBLocalDatabaseMigrationUtils.BaseMigrationHandler.call(this);
  45.   
  46.   this.fromVersion = 8;
  47.   this.toVersion   = 9;
  48. }
  49.  
  50. //-----------------------------------------------------------------------------
  51. // sbLocalDatabaseMigration Implementation
  52. //-----------------------------------------------------------------------------
  53.  
  54. sbLocalDatabaseMigrate070to08pre1.prototype = {
  55.   __proto__: SBLocalDatabaseMigrationUtils.BaseMigrationHandler.prototype,
  56.  
  57.   classDescription: 'Songbird Migration Handler for 0.7.0 to 0.8.0 pre with no content hash',
  58.   classID: Components.ID("{b080f650-7ef2-11dd-ad8b-a0800200c9a6}"),
  59.   contractID: SBLocalDatabaseMigrationUtils.baseHandlerContractID + "0.7.0 to 0.8.0 pre1",
  60.   
  61.   _databaseLocation: null,
  62.   _databaseGUID: null,
  63.   
  64.   _mediaItems: null,
  65.   
  66.   migrate: function sbLDBM070to08pre1_migrate(aLibrary) {
  67.     this._databaseGUID = aLibrary.databaseGuid;
  68.     this._databaseLocation = aLibrary.databaseLocation;
  69.  
  70.     var query = this._createQuery();
  71.     query.addQuery("begin");
  72.  
  73.     // We aren't filtering with URL and hash anymore, so we don't need the index
  74.     query.addQuery("drop index idx_media_items_content_url_content_hash");
  75.     
  76.     // We're no longer populating the signature property, so clear out any data in case
  77.     // we use it in the future
  78.     query.addQuery("update media_items set content_hash=null");    
  79.  
  80.     // Finally, we update the schema version to the destination version.
  81.     query.addQuery("update library_metadata set value = '9' where name = 'version'");
  82.  
  83.     // Our queries are all generated. Time to execute the migration.
  84.     query.addQuery("commit");
  85.  
  86.     var retval;
  87.     query.setAsyncQuery(true);
  88.     query.execute(retval);
  89.     
  90.     var sip = Cc["@mozilla.org/supports-interface-pointer;1"]
  91.                 .createInstance(Ci.nsISupportsInterfacePointer);
  92.     sip.data = this;
  93.     
  94.     this._titleText = "Library Migration Helper";
  95.     this._statusText = "Migrating 0.7.0 database to 0.8.0pre1 database...";
  96.     this.migrationQuery = query;
  97.     
  98.     this.startNotificationTimer();
  99.     SBJobUtils.showProgressDialog(sip.data, null, 0);
  100.     this.stopNotificationTimer();
  101.   },
  102.   
  103.   _createQuery: function sbLDBM070to08pre1_createQuery() {
  104.     var query = Cc["@songbirdnest.com/Songbird/DatabaseQuery;1"]
  105.                   .createInstance(Ci.sbIDatabaseQuery);
  106.     query.databaseLocation = this._databaseLocation;
  107.     query.setDatabaseGUID(this._databaseGUID);
  108.     
  109.     return query;
  110.   }
  111. }
  112.  
  113.  
  114. //
  115. // Module
  116. // 
  117.  
  118. function NSGetModule(compMgr, fileSpec) {
  119.   return XPCOMUtils.generateModule([
  120.     sbLocalDatabaseMigrate070to08pre1
  121.   ]);
  122. }
  123.