Changed Storage package LocalStorage class to use same function names as web storage API for better cross-compatibility. Also changed storage data type to String from Object to maintain that compatibility and provide a concrete data type.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/392faf58 Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/392faf58 Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/392faf58 Branch: refs/heads/spark Commit: 392faf58189d864a5b2f7acb5e020e906211925b Parents: 5479450 Author: Peter Ent <[email protected]> Authored: Thu Feb 25 14:32:55 2016 -0500 Committer: Peter Ent <[email protected]> Committed: Thu Feb 25 14:32:55 2016 -0500 ---------------------------------------------------------------------- .../org/apache/flex/storage/LocalStorage.as | 106 +++++++++++-------- 1 file changed, 64 insertions(+), 42 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/392faf58/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as index a3a2b87..9edd82c 100644 --- a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as +++ b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as @@ -26,7 +26,7 @@ COMPILE::AS3 { * The LocalStorage class allows apps to store small amounts of data * locally, in the browser's permitted storage area. This data will persist * between browser invocations. The data is stored in key=value pairs. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -35,17 +35,17 @@ COMPILE::AS3 { */ public class LocalStorage { - + /** * Constructor. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 * @flexjsignoreimport window */ - public function LocalStorage() + public function LocalStorage() { COMPILE::AS3 { try { @@ -55,13 +55,13 @@ public class LocalStorage } } } - + COMPILE::AS3 private var sharedObject:SharedObject; - + /** * Returns true if the platform provides local storage. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -71,11 +71,11 @@ public class LocalStorage public function storageAvailable():Boolean { var result:Boolean = false; - + COMPILE::AS3 { result = (sharedObject != null); } - + COMPILE::JS { try { result = 'localStorage' in window && window['localStorage'] !== null; @@ -83,115 +83,137 @@ public class LocalStorage result = false; } } - + return result; } - + /** * Stores a value with a key. The value may be converted to a String, depending * on the platform. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 * @flexjsignoreimport window */ - public function setValue(key:String, value:Object) : Boolean + public function setItem(key:String, value:String) : Boolean { if (!storageAvailable()) return false; - + COMPILE::AS3 { sharedObject.data[key] = value; sharedObject.flush(); } - + COMPILE::JS { - window.localStorage[key] = value; + window.localStorage.setItem(key, value); } - + return true; } - + /** * Returns the value associated with the key, or undefined if there is * no value stored. Note that a String version of the value may have been * stored, depending on the platform. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 * @flexjsignoreimport window */ - public function getValue(key:String) : Object + public function getItem(key:String) : String { if (!storageAvailable()) return null; - - var result:Object = null; - + + var result:String = null; + COMPILE::AS3 { - result = sharedObject.data[key]; + result = sharedObject.data[key] as String; } - + COMPILE::JS { - result = window.localStorage[key]; + result = window.localStorage.getItem(key); } - + return result; } - + /** * Removed the value and, possibly, the key from local storage. On some * platforms, retriving the value after removing it will be an error, on * others it may return undefined or null. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 * @flexjsignoreimport window */ - public function removeValue(key:String) : Boolean + public function removeItem(key:String) : Boolean { if (!storageAvailable()) return null; - + COMPILE::AS3 { delete sharedObject.data[key]; sharedObject.flush(); } - + COMPILE::JS { - window.localStorage[key] = null; + window.localStorage.removeItem(key); } - + return true; } - + /** * Returns true if there is a value stored for the key. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 * @flexjsignoreimport window */ - public function hasValue(key:String) : Boolean + public function hasItem(key:String) : Boolean { if (!storageAvailable()) return false; - + var result:Boolean = false; - + COMPILE::AS3 { result = sharedObject.data.hasOwnProperty(key); } - + COMPILE::JS { result = (window.localStorage[key] !== null); } - + return result; } + + /** + * Clears all values from local storage. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + * @flexjsignoreimport window + */ + public function clear() : void + { + if (!storageAvailable()) return; + + COMPILE::AS3 { + sharedObject.clear(); + } + + COMPILE::JS { + window.localStorage.clear(); + } + } +} } -} \ No newline at end of file
