diff options
Diffstat (limited to 'includes/js/dojox/storage/AirDBStorageProvider.js')
-rw-r--r-- | includes/js/dojox/storage/AirDBStorageProvider.js | 252 |
1 files changed, 0 insertions, 252 deletions
diff --git a/includes/js/dojox/storage/AirDBStorageProvider.js b/includes/js/dojox/storage/AirDBStorageProvider.js deleted file mode 100644 index a846b94..0000000 --- a/includes/js/dojox/storage/AirDBStorageProvider.js +++ /dev/null @@ -1,252 +0,0 @@ -if(!dojo._hasResource["dojox.storage.AirDBStorageProvider"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.storage.AirDBStorageProvider"] = true; -dojo.provide("dojox.storage.AirDBStorageProvider"); -dojo.require("dojox.storage.manager"); -dojo.require("dojox.storage.Provider"); - -if (dojo.isAIR) { - (function(){ - - if (!air) { - var air = {}; - } - air.File = window.runtime.flash.filesystem.File; - air.SQLConnection = window.runtime.flash.data.SQLConnection; - air.SQLStatement = window.runtime.flash.data.SQLStatement; - - // summary: - // Storage provider that uses features in the Adobe AIR runtime to achieve - // permanent storage - dojo.declare("dojox.storage.AirDBStorageProvider", [ dojox.storage.Provider ], { - DATABASE_FILE: "dojo.db", - TABLE_NAME: "__DOJO_STORAGE", - initialized: false, - - _db: null, - - initialize: function(){ - this.initialized = false; - - // need to initialize our storage database - try{ - this._db = new air.SQLConnection(); - this._db.open(air.File.applicationStorageDirectory.resolvePath(this.DATABASE_FILE)); - - this._sql("CREATE TABLE IF NOT EXISTS " + this.TABLE_NAME + "(namespace TEXT, key TEXT, value TEXT)"); - this._sql("CREATE UNIQUE INDEX IF NOT EXISTS namespace_key_index ON " + this.TABLE_NAME + " (namespace, key)"); - - this.initialized = true; - }catch(e){ - console.debug("dojox.storage.AirDBStorageProvider.initialize:", e); - } - - // indicate that this storage provider is now loaded - dojox.storage.manager.loaded(); - }, - - _sql: function(query, params){ - var stmt = new air.SQLStatement(); - stmt.sqlConnection = this._db; - stmt.text = query; - if (params){ - for (var param in params){ - stmt.parameters[param] = params[param]; - } - } - stmt.execute(); - return stmt.getResult(); - }, - - _beginTransaction: function(){ - this._db.begin(); - }, - - _commitTransaction: function(){ - this._db.commit(); - }, - - isAvailable: function(){ - return true; - }, - - put: function(key, value, resultsHandler, namespace){ - if(this.isValidKey(key) == false){ - throw new Error("Invalid key given: " + key); - } - namespace = namespace||this.DEFAULT_NAMESPACE; - if(this.isValidKey(namespace) == false){ - throw new Error("Invalid namespace given: " + namespace); - } - - // try to store the value - try{ - this._sql("DELETE FROM " + this.TABLE_NAME + " WHERE namespace = :namespace AND key = :key", - { ":namespace":namespace, ":key":key }); - this._sql("INSERT INTO " + this.TABLE_NAME + " VALUES (:namespace, :key, :value)", - { ":namespace":namespace, ":key":key, ":value":value }); - }catch(e){ - // indicate we failed - console.debug("dojox.storage.AirDBStorageProvider.put:", e); - resultsHandler(this.FAILED, key, e.toString()); - return; - } - - if(resultsHandler){ - resultsHandler(this.SUCCESS, key, null); - } - }, - - get: function(key, namespace){ - if(this.isValidKey(key) == false){ - throw new Error("Invalid key given: " + key); - } - namespace = namespace||this.DEFAULT_NAMESPACE; - - var results = this._sql("SELECT * FROM " + this.TABLE_NAME + " WHERE namespace = :namespace AND key = :key", - { ":namespace":namespace, ":key":key }); - - if(results.data && results.data.length){ - return results.data[0].value; - } - - return null; - }, - - getNamespaces: function(){ - var results = [ this.DEFAULT_NAMESPACE ]; - var rs = this._sql("SELECT namespace FROM " + this.TABLE_NAME + " DESC GROUP BY namespace"); - if (rs.data){ - for(var i = 0; i < rs.data.length; i++){ - if(rs.data[i].namespace != this.DEFAULT_NAMESPACE){ - results.push(rs.data[i].namespace); - } - } - } - return results; - }, - - getKeys: function(namespace){ - namespace = namespace||this.DEFAULT_NAMESPACE; - if(this.isValidKey(namespace) == false){ - throw new Error("Invalid namespace given: " + namespace); - } - - var results = []; - var rs = this._sql("SELECT key FROM " + this.TABLE_NAME + " WHERE namespace = :namespace", { ":namespace":namespace }); - if (rs.data){ - for(var i = 0; i < rs.data.length; i++){ - results.push(rs.data[i].key); - } - } - return results; - }, - - clear: function(namespace){ - if(this.isValidKey(namespace) == false){ - throw new Error("Invalid namespace given: " + namespace); - } - this._sql("DELETE FROM " + this.TABLE_NAME + " WHERE namespace = :namespace", { ":namespace":namespace }); - }, - - remove: function(key, namespace){ - namespace = namespace||this.DEFAULT_NAMESPACE; - this._sql("DELETE FROM " + this.TABLE_NAME + " WHERE namespace = :namespace AND key = :key", - { ":namespace":namespace, ":key":key }); - }, - - putMultiple: function(keys, values, resultsHandler, namespace) { - if(this.isValidKeyArray(keys) === false - || ! values instanceof Array - || keys.length != values.length){ - throw new Error("Invalid arguments: keys = [" + keys + "], values = [" + values + "]"); - } - - if(namespace == null || typeof namespace == "undefined"){ - namespace = this.DEFAULT_NAMESPACE; - } - - if(this.isValidKey(namespace) == false){ - throw new Error("Invalid namespace given: " + namespace); - } - - this._statusHandler = resultsHandler; - - // try to store the value - try{ - this._beginTransaction(); - for(var i=0;i<keys.length;i++) { - this._sql("DELETE FROM " + this.TABLE_NAME + " WHERE namespace = :namespace AND key = :key", - { ":namespace":namespace, ":key":key[i] }); - this._sql("INSERT INTO " + this.TABLE_NAME + " VALUES (:namespace, :key, :value)", - { ":namespace":namespace, ":key":key[i], ":value":value }); - } - this._commitTransaction(); - }catch(e){ - // indicate we failed - console.debug("dojox.storage.AirDBStorageProvider.putMultiple:", e); - if(resultsHandler){ - resultsHandler(this.FAILED, keys, e.toString()); - } - return; - } - - if(resultsHandler){ - resultsHandler(this.SUCCESS, key, null); - } - }, - - getMultiple: function(keys, namespace){ - if(this.isValidKeyArray(keys) === false){ - throw new Error("Invalid key array given: " + keys); - } - - if(namespace == null || typeof namespace == "undefined"){ - namespace = this.DEFAULT_NAMESPACE; - } - - if(this.isValidKey(namespace) == false){ - throw new Error("Invalid namespace given: " + namespace); - } - - var results = []; - for(var i=0;i<keys.length;i++){ - var result = this._sql("SELECT * FROM " + this.TABLE_NAME + " WHERE namespace = :namespace AND key = :key", - { ":namespace":namespace, ":key":keys[i] }); - results[i] = result.data && result.data.length ? result.data[0].value : null; - } - - return results; - }, - - removeMultiple: function(keys, namespace){ - namespace = namespace||this.DEFAULT_NAMESPACE; - - this._beginTransaction(); - for(var i=0;i<keys.length;i++){ - this._sql("DELETE FROM " + this.TABLE_NAME + " WHERE namespace = namespace = :namespace AND key = :key", - { ":namespace":namespace, ":key":keys[i] }); - } - this._commitTransaction(); - }, - - isPermanent: function(){ return true; }, - - getMaximumSize: function(){ return this.SIZE_NO_LIMIT; }, - - hasSettingsUI: function(){ return false; }, - - showSettingsUI: function(){ - throw new Error(this.declaredClass + " does not support a storage settings user-interface"); - }, - - hideSettingsUI: function(){ - throw new Error(this.declaredClass + " does not support a storage settings user-interface"); - } - }); - - dojox.storage.manager.register("dojox.storage.AirDBStorageProvider", new dojox.storage.AirDBStorageProvider()); - dojox.storage.manager.initialize(); - })(); -} - -} |