com.google.gwt.storage.client

## Class Storage

- java.lang.Object
- - com.google.gwt.storage.client.Storage

-     public final class Storage
      extends java.lang.Object

  Implements the HTML5 Storage interface.

  You can obtain a Storage by either invoking `getLocalStorageIfSupported()` or `getSessionStorageIfSupported()`.

  Experimental API: This API is still under development and is subject to change.

  If Web Storage is NOT supported in the browser, these methods return `null`.

  Note: Storage events into other windows are not supported.

  This may not be supported on all browsers.

  See Also:
    W3C Web Storage - Storage, Safari Client-Side Storage and Offline Applications Programming Guide - Key-Value Storage, Quirksmode.org - HTML5 Compatibility - Storage, Wiki - Quickstart Guide

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `(package private) static StorageImpl` | `impl`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static HandlerRegistration` | `addStorageEventHandler(StorageEvent.Handler handler)` Registers an event handler for StorageEvents.
    `void` | `clear()` Removes all items in the Storage.
    `java.lang.String` | `getItem(java.lang.String key)` Returns the item in the Storage associated with the specified key.
    `int` | `getLength()` Returns the number of items in this Storage.
    `static Storage` | `getLocalStorageIfSupported()` Returns a Local Storage.
    `static Storage` | `getSessionStorageIfSupported()` Returns a Session Storage.
    `static boolean` | `isLocalStorageSupported()` Returns `true` if the `localStorage` part of the Storage API is supported on the running platform.
    `static boolean` | `isSessionStorageSupported()` Returns `true` if the `sessionStorage` part of the Storage API is supported on the running platform.
    `static boolean` | `isSupported()` Returns `true` if the Storage API (both localStorage and sessionStorage) is supported on the running platform.
    `java.lang.String` | `key(int index)` Returns the key at the specified index.
    `void` | `removeItem(java.lang.String key)` Removes the item in the Storage associated with the specified key.
    `static void` | `removeStorageEventHandler(StorageEvent.Handler handler)` De-registers an event handler for StorageEvents.
    `void` | `setItem(java.lang.String key, java.lang.String data)` Sets the value in the Storage associated with the specified key to the specified data.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### impl

          static final StorageImpl impl

  - ### Method Detail

    - #### addStorageEventHandler

          public static HandlerRegistration addStorageEventHandler(StorageEvent.Handler handler)

      Registers an event handler for StorageEvents.
      Parameters:
        `handler` -
      Returns:
        `HandlerRegistration` used to remove this handler
      See Also:
        W3C Web Storage - the storage event

    - #### getLocalStorageIfSupported

          public static Storage getLocalStorageIfSupported()

      Returns a Local Storage.

      The returned storage is associated with the origin of the Document.

      Returns:
        the localStorage instance, or `null` if Web Storage is NOT supported.
      See Also:
        W3C Web Storage - localStorage

    - #### getSessionStorageIfSupported

          public static Storage getSessionStorageIfSupported()

      Returns a Session Storage.

      The returned storage is associated with the current top-level browsing context.

      Returns:
        the sessionStorage instance, or `null` if Web Storage is NOT supported.
      See Also:
        W3C Web Storage - sessionStorage

    - #### isLocalStorageSupported

          public static boolean isLocalStorageSupported()

      Returns `true` if the `localStorage` part of the Storage API is supported on the running platform.

    - #### isSessionStorageSupported

          public static boolean isSessionStorageSupported()

      Returns `true` if the `sessionStorage` part of the Storage API is supported on the running platform.

    - #### isSupported

          public static boolean isSupported()

      Returns `true` if the Storage API (both localStorage and sessionStorage) is supported on the running platform.

    - #### removeStorageEventHandler

          public static void removeStorageEventHandler(StorageEvent.Handler handler)

      De-registers an event handler for StorageEvents.
      Parameters:
        `handler` -
      See Also:
        W3C Web Storage - the storage event

    - #### clear

          public void clear()

      Removes all items in the Storage.
      See Also:
        W3C Web Storage - Storage.clear()

    - #### getItem

          public java.lang.String getItem(java.lang.String key)

      Returns the item in the Storage associated with the specified key.
      Parameters:
        `key` - the key to a value in the Storage
      Returns:
        the value associated with the given key
      See Also:
        W3C Web Storage - Storage.getItem(k)

    - #### getLength

          public int getLength()

      Returns the number of items in this Storage.
      Returns:
        number of items in this Storage
      See Also:
        W3C Web Storage - Storage.length()

    - #### key

          public java.lang.String key(int index)

      Returns the key at the specified index.
      Parameters:
        `index` - the index of the key
      Returns:
        the key at the specified index in this Storage
      See Also:
        W3C Web Storage - Storage.key(n)

    - #### removeItem

          public void removeItem(java.lang.String key)

      Removes the item in the Storage associated with the specified key.
      Parameters:
        `key` - the key to a value in the Storage
      See Also:
        W3C Web Storage - Storage.removeItem(k)

    - #### setItem

          public void setItem(java.lang.String key,
                     java.lang.String data)

      Sets the value in the Storage associated with the specified key to the specified data. Note: The empty string may not be used as a key.
      Parameters:
        `key` - the key to a value in the Storage
        `data` - the value associated with the key
      See Also:
        W3C Web Storage - Storage.setItem(k,v)