Revert "Use SimpleEntry in StorageMap."
This reverts commit fc3088d7b42e123df81de2879f8a6c7d0a2ba12e.
Breaks build. See:
http://build.gwtproject.org/job/gwt/168/testReport/com.google.gwt.storage.client/LocalStorageMapTest/
Change-Id: I668d8643eb700690c31907f72aae0c1172bc26f9
diff --git a/user/src/com/google/gwt/storage/client/StorageMap.java b/user/src/com/google/gwt/storage/client/StorageMap.java
index 37bce37..3c3ccac 100644
--- a/user/src/com/google/gwt/storage/client/StorageMap.java
+++ b/user/src/com/google/gwt/storage/client/StorageMap.java
@@ -58,19 +58,48 @@
/*
* Represents a Map.Entry to a Storage item
*/
- private class StorageEntry extends SimpleEntry<String, String> {
+ private class StorageEntry implements Map.Entry<String, String> {
+ private final String key;
+
public StorageEntry(String key) {
- super(key, null);
+ this.key = key;
}
@Override
+ @SuppressWarnings("rawtypes")
+ public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ } else if (obj == this) {
+ return true;
+ } else if (!(obj instanceof Map.Entry)) {
+ return false;
+ }
+
+ Map.Entry e = (Map.Entry) obj;
+
+ return eq(key, e.getKey()) && eq(getValue(), e.getValue());
+ }
+
+ public String getKey() {
+ return key;
+ }
+
public String getValue() {
- return get(getKey());
+ return storage.getItem(key);
}
@Override
+ public int hashCode() {
+ String value = getValue();
+ return (key == null ? 0 : key.hashCode())
+ ^ (value == null ? 0 : value.hashCode());
+ }
+
public String setValue(String value) {
- return put(getKey(), value);
+ String oldValue = storage.getItem(key);
+ storage.setItem(key, value);
+ return oldValue;
}
}