dojox/storage/AirFileStorageProvider.js

  • Provides:

    • dojox.storage.AirFileStorageProvider
  • Requires:

    • dojox.storage.manager in common
    • dojox.storage.Provider in common
  • dojox.storage.AirFileStorageProvider

    • type
      Function
    • chains:
      • dojox.storage.Provider: (prototype)
      • dojox.storage.Provider: (call)
    • summary
  • dojox.storage.AirFileStorageProvider.initialized

    • summary
  • dojox.storage.AirFileStorageProvider._storagePath

    • summary
  • dojox.storage.AirFileStorageProvider.initialize

    • type
      Function
    • source: [view]
          this.initialized = false;


          // need to initialize our storage directory
          try{
           var dir = air.File.applicationStorageDirectory.resolvePath(this._storagePath);
           if (!dir.exists){
            dir.createDirectory();
           }
           this.initialized = true;
          }catch(e){
           console.debug("dojox.storage.AirFileStorageProvider.initialize:", e);
          }

          
          // indicate that this storage provider is now loaded
          dojox.storage.manager.loaded();
    • summary
  • dojox.storage.AirFileStorageProvider.isAvailable

    • type
      Function
    • source: [view]
          return true;
    • summary
  • dojox.storage.AirFileStorageProvider.put

    • type
      Function
    • parameters:
      • key: (typeof )
      • value: (typeof )
      • resultsHandler: (typeof )
      • namespace: (typeof )
    • source: [view]
          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.remove(key, namespace);

           
           var dir = air.File.applicationStorageDirectory.resolvePath(this._storagePath + namespace);
           if (!dir.exists){
            dir.createDirectory();
           }

           
           var file = dir.resolvePath(key);
           var stream = new air.FileStream();
           stream.open(file, air.FileMode.WRITE);
           stream.writeObject(value);
           stream.close();
          }catch(e){
           // indicate we failed
           console.debug("dojox.storage.AirFileStorageProvider.put:", e);
           resultsHandler(this.FAILED, key, e.toString(), namespace);
           return;
          }

          
          if(resultsHandler){
           resultsHandler(this.SUCCESS, key, null, namespace);
          }
    • summary
  • dojox.storage.AirFileStorageProvider.get

    • type
      Function
    • parameters:
      • key: (typeof )
      • namespace: (typeof )
    • source: [view]
          if(this.isValidKey(key) == false){
           throw new Error("Invalid key given: " + key);
          }
          namespace = namespace||this.DEFAULT_NAMESPACE;

          
          var results = null;

          
          var file = air.File.applicationStorageDirectory.resolvePath(this._storagePath + namespace + '/' + key);
          if (file.exists && !file.isDirectory){
           var stream = new air.FileStream();
           stream.open(file, air.FileMode.READ);
           results = stream.readObject();
           stream.close();
          }

          
          return results;
    • summary
  • dojox.storage.AirFileStorageProvider.getNamespaces

    • type
      Function
    • source: [view]
          var results = [ this.DEFAULT_NAMESPACE ];
          var dir = air.File.applicationStorageDirectory.resolvePath(this._storagePath);
          var files = dir.getDirectoryListing(), i;
          for (i = 0; i < files.length; i++) {
           if(files[i].isDirectory && files[i].name != this.DEFAULT_NAMESPACE){
            results.push(files[i].name);
           }
          }
          return results;
    • summary
  • dojox.storage.AirFileStorageProvider.getKeys

    • type
      Function
    • parameters:
      • namespace: (typeof )
    • source: [view]
          namespace = namespace||this.DEFAULT_NAMESPACE;
          if(this.isValidKey(namespace) == false){
           throw new Error("Invalid namespace given: " + namespace);
          }


          var results = [];
          var dir = air.File.applicationStorageDirectory.resolvePath(this._storagePath + namespace);
          if (dir.exists && dir.isDirectory){
           var files = dir.getDirectoryListing(), i;
           for (i = 0; i < files.length; i++) {
            results.push(files[i].name);
           }
          }
          return results;
    • summary
  • dojox.storage.AirFileStorageProvider.clear

    • type
      Function
    • parameters:
      • namespace: (typeof )
    • source: [view]
          if(this.isValidKey(namespace) == false){
           throw new Error("Invalid namespace given: " + namespace);
          }
          var dir = air.File.applicationStorageDirectory.resolvePath(this._storagePath + namespace);
          if (dir.exists && dir.isDirectory){
           dir.deleteDirectory(true);
          }
    • summary
  • dojox.storage.AirFileStorageProvider.remove

    • type
      Function
    • parameters:
      • key: (typeof )
      • namespace: (typeof )
    • source: [view]
          namespace = namespace||this.DEFAULT_NAMESPACE;
          var file = air.File.applicationStorageDirectory.resolvePath(this._storagePath + namespace + '/' + key);
          if (file.exists && !file.isDirectory){
           file.deleteFile();
          }
    • summary
  • dojox.storage.AirFileStorageProvider.putMultiple

    • type
      Function
    • parameters:
      • keys: (typeof )
      • values: (typeof )
      • resultsHandler: (typeof )
      • namespace: (typeof )
    • source: [view]
          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{
           for(var i=0;i      this.put(keys[i], values[i], null, namespace);
           }
          }catch(e){
           // indicate we failed
           console.debug("dojox.storage.AirFileStorageProvider.putMultiple:", e);
           if(resultsHandler){
            resultsHandler(this.FAILED, keys, e.toString(), namespace);
           }
           return;
          }

          
          if(resultsHandler){
           resultsHandler(this.SUCCESS, keys, null, namespace);
          }
    • summary
  • dojox.storage.AirFileStorageProvider.getMultiple

    • type
      Function
    • parameters:
      • keys: (typeof )
      • namespace: (typeof )
    • source: [view]
          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     results[i] = this.get(keys[i], namespace);
          }
          return results;
    • summary
  • dojox.storage.AirFileStorageProvider.removeMultiple

    • type
      Function
    • parameters:
      • keys: (typeof )
      • namespace: (typeof )
    • source: [view]
          namespace = namespace||this.DEFAULT_NAMESPACE;

          
          for(var i=0;i     this.remove(keys[i], namespace);
          }
    • summary
  • dojox.storage.AirFileStorageProvider.isPermanent

    • type
      Function
    • source: [view]
         isPermanent: function(){ return true;
    • summary
  • dojox.storage.AirFileStorageProvider.getMaximumSize

    • type
      Function
    • source: [view]
         getMaximumSize: function(){ return this.SIZE_NO_LIMIT;
    • summary
  • dojox.storage.AirFileStorageProvider.hasSettingsUI

    • type
      Function
    • source: [view]
         hasSettingsUI: function(){ return false;
    • summary
  • dojox.storage.AirFileStorageProvider.showSettingsUI

    • type
      Function
    • source: [view]
          throw new Error(this.declaredClass + " does not support a storage settings user-interface");
    • summary
  • dojox.storage.AirFileStorageProvider.hideSettingsUI

    • type
      Function
    • source: [view]
          throw new Error(this.declaredClass + " does not support a storage settings user-interface");
    • summary
  • dojox.storage.AirFileStorageProvider._statusHandler

    • summary
  • air.File

    • summary
  • air.FileStream

    • summary
  • air.FileMode

    • summary
  • dojox.storage

    • type
      Object
    • summary
  • dojox

    • type
      Object
    • summary