in client/src/main/java/org/apache/hupa/client/storage/AppCacheHTML5.java [27:100]
public void createStorageImplementationSync() {
localStorage = Storage.getLocalStorageIfSupported();
if (localStorage == null) {
super.createStorageImplementationSync();
return;
}
try {
storageMap = new StorageMap(localStorage);
localStorage.setItem(".", ".");
localStorage.getItem(".");
storageMap.containsKey(".");
localStorage.removeItem(".");
} catch (Exception e) {
super.createStorageImplementationSync();
return;
}
syncStorage = new SyncStorage() {
@Override
public void setItem(String key, Object data) {
localStorage.setItem(key, "" + data);
}
@Override
public void removeItem(String key) {
if (storageMap.containsKey(key)) {
localStorage.removeItem(key);
}
}
@Override
public int getLength() {
return localStorage.getLength();
}
@Override
public String getItem(String key) {
String ret = localStorage.getItem(key);
return ret;
}
@Override
public boolean containsKey(String key) {
return storageMap.containsKey(key);
}
@Override
public void clear() {
localStorage.clear();
}
@Override
public String key(int i) {
return localStorage.key(i);
}
@Override
public native void log(Object o) /*-{
if ($wnd.console && typeof $wnd.console.log == 'function')
$wnd.console.log(o);
}-*/;
@Override
public native int getSize() /*-{
try {
return JSON.stringify(localStorage).length;
} catch (e) {
return 0;
}
}-*/;
};
}