aboutsummaryrefslogtreecommitdiff
path: root/includes/js/dojox/storage/AirDBStorageProvider.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojox/storage/AirDBStorageProvider.js')
-rw-r--r--includes/js/dojox/storage/AirDBStorageProvider.js252
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();
- })();
-}
-
-}