Fixes issue 1139, add java.io.Serializable to our JRE classes. EnumMap, EnumSet, LinkedHashMap and LinkedHashSet were excluded because they are not yet complete.
PriorityQueue, TreeMap, and TreeSet were excluded because they can have user specified comparators which may not be Serializable at all. We should revisit this decision if there is a demand.
Patch by: mmendez
Review by: jat
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1578 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/super/com/google/gwt/emul/java/lang/Boolean.java b/user/super/com/google/gwt/emul/java/lang/Boolean.java
index 18949a9..4b4f43b 100644
--- a/user/super/com/google/gwt/emul/java/lang/Boolean.java
+++ b/user/super/com/google/gwt/emul/java/lang/Boolean.java
@@ -15,10 +15,12 @@
*/
package java.lang;
+import java.io.Serializable;
+
/**
* Wraps native <code>boolean</code> as an object.
*/
-public final class Boolean implements Comparable<Boolean> {
+public final class Boolean implements Comparable<Boolean>, Serializable {
// CHECKSTYLE_OFF: These have to be created somewhere.
public static Boolean FALSE = new Boolean(false);
diff --git a/user/super/com/google/gwt/emul/java/lang/Character.java b/user/super/com/google/gwt/emul/java/lang/Character.java
index 1457a2f..9dd6ad3 100644
--- a/user/super/com/google/gwt/emul/java/lang/Character.java
+++ b/user/super/com/google/gwt/emul/java/lang/Character.java
@@ -15,10 +15,12 @@
*/
package java.lang;
+import java.io.Serializable;
+
/**
* Wraps a native <code>char</code> as an object.
*/
-public final class Character implements Comparable<Character> {
+public final class Character implements Comparable<Character>, Serializable {
public static final int MIN_RADIX = 2;
public static final int MAX_RADIX = 36;
diff --git a/user/super/com/google/gwt/emul/java/lang/Enum.java b/user/super/com/google/gwt/emul/java/lang/Enum.java
index 151b4b0..90ebc08 100644
--- a/user/super/com/google/gwt/emul/java/lang/Enum.java
+++ b/user/super/com/google/gwt/emul/java/lang/Enum.java
@@ -17,12 +17,15 @@
import com.google.gwt.core.client.JavaScriptObject;
+import java.io.Serializable;
+
/**
* The first-class representation of an enumeration.
*
* @param <E>
*/
-public abstract class Enum<E extends Enum<E>> implements Comparable<E> {
+public abstract class Enum<E extends Enum<E>> implements Comparable<E>,
+ Serializable {
protected static <T extends Enum<T>> T valueOf(JavaScriptObject map,
String name) {
diff --git a/user/super/com/google/gwt/emul/java/lang/Number.java b/user/super/com/google/gwt/emul/java/lang/Number.java
index c87710e..2360eff 100644
--- a/user/super/com/google/gwt/emul/java/lang/Number.java
+++ b/user/super/com/google/gwt/emul/java/lang/Number.java
@@ -17,10 +17,12 @@
import com.google.gwt.core.client.JavaScriptObject;
+import java.io.Serializable;
+
/**
* Abstract base class for numeric wrapper classes.
*/
-public abstract class Number {
+public abstract class Number implements Serializable {
/**
* Stores a regular expression object to verify format of float values.
diff --git a/user/super/com/google/gwt/emul/java/lang/String.java b/user/super/com/google/gwt/emul/java/lang/String.java
index bb6fcb6..f238537 100644
--- a/user/super/com/google/gwt/emul/java/lang/String.java
+++ b/user/super/com/google/gwt/emul/java/lang/String.java
@@ -24,10 +24,13 @@
import com.google.gwt.core.client.JavaScriptObject;
+import java.io.Serializable;
+
/**
* Intrinsic string class.
*/
-public final class String implements Comparable<String>, CharSequence {
+public final class String implements Comparable<String>, CharSequence,
+ Serializable {
/**
* Accesses need to be prefixed with ':' to prevent conflict with built-in
diff --git a/user/super/com/google/gwt/emul/java/util/ArrayList.java b/user/super/com/google/gwt/emul/java/util/ArrayList.java
index 91ae33b..51b9d73 100644
--- a/user/super/com/google/gwt/emul/java/util/ArrayList.java
+++ b/user/super/com/google/gwt/emul/java/util/ArrayList.java
@@ -18,6 +18,8 @@
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.lang.Array;
+import java.io.Serializable;
+
/**
* Resizeable array implementation of the List interface. <a
* href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/ArrayList.html">[Sun
@@ -37,7 +39,7 @@
* @param <E> the element type.
*/
public class ArrayList<E> extends AbstractList<E> implements List<E>,
- Cloneable, RandomAccess {
+ Cloneable, RandomAccess, Serializable {
private static native void addImpl(JavaScriptObject array, int index, Object o) /*-{
array.splice(index, 0, o);
diff --git a/user/super/com/google/gwt/emul/java/util/Date.java b/user/super/com/google/gwt/emul/java/util/Date.java
index fdb5448..bc730e3 100644
--- a/user/super/com/google/gwt/emul/java/util/Date.java
+++ b/user/super/com/google/gwt/emul/java/util/Date.java
@@ -15,10 +15,12 @@
*/
package java.util;
+import java.io.Serializable;
+
/**
* Represents a date and time.
*/
-public class Date implements Cloneable, Comparable<Date> {
+public class Date implements Cloneable, Comparable<Date>, Serializable {
/**
* Used only by toString().
*/
diff --git a/user/super/com/google/gwt/emul/java/util/HashMap.java b/user/super/com/google/gwt/emul/java/util/HashMap.java
index 6b73659..8cf4abb 100644
--- a/user/super/com/google/gwt/emul/java/util/HashMap.java
+++ b/user/super/com/google/gwt/emul/java/util/HashMap.java
@@ -17,6 +17,8 @@
import com.google.gwt.core.client.JavaScriptObject;
+import java.io.Serializable;
+
/**
* Implementation of Map interface based on a hash table. <a
* href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/HashMap.html">[Sun
@@ -25,7 +27,7 @@
* @param <K> key type
* @param <V> value type
*/
-public class HashMap<K, V> extends AbstractMap<K, V> {
+public class HashMap<K, V> extends AbstractMap<K, V> implements Serializable {
/*
* Implementation notes:
*
diff --git a/user/super/com/google/gwt/emul/java/util/HashSet.java b/user/super/com/google/gwt/emul/java/util/HashSet.java
index 2b48454..e843746 100644
--- a/user/super/com/google/gwt/emul/java/util/HashSet.java
+++ b/user/super/com/google/gwt/emul/java/util/HashSet.java
@@ -15,6 +15,8 @@
*/
package java.util;
+import java.io.Serializable;
+
/**
* Implements a set in terms of a hash table. <a
* href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/HashSet.html">[Sun
@@ -22,7 +24,8 @@
*
* @param <E> element type.
*/
-public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable {
+public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable,
+ Serializable {
private transient HashMap<E, Object> map;
diff --git a/user/super/com/google/gwt/emul/java/util/IdentityHashMap.java b/user/super/com/google/gwt/emul/java/util/IdentityHashMap.java
index 2324213..cc30614 100644
--- a/user/super/com/google/gwt/emul/java/util/IdentityHashMap.java
+++ b/user/super/com/google/gwt/emul/java/util/IdentityHashMap.java
@@ -15,6 +15,8 @@
*/
package java.util;
+import java.io.Serializable;
+
/**
* Map using reference equality on keys. <a
* href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/IdentityHashMap.html">[Sun
@@ -24,7 +26,7 @@
* @param <V> value type
*/
public class IdentityHashMap<K, V> extends AbstractMap<K, V> implements
- Map<K, V>, Cloneable {
+ Map<K, V>, Cloneable, Serializable {
public IdentityHashMap() {
this(10);
diff --git a/user/super/com/google/gwt/emul/java/util/LinkedList.java b/user/super/com/google/gwt/emul/java/util/LinkedList.java
index a974bde..e0ea1c8 100644
--- a/user/super/com/google/gwt/emul/java/util/LinkedList.java
+++ b/user/super/com/google/gwt/emul/java/util/LinkedList.java
@@ -15,6 +15,8 @@
*/
package java.util;
+import java.io.Serializable;
+
/**
* Linked list implementation. <a
* href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/LinkedList.html">[Sun
@@ -23,7 +25,7 @@
* @param <E> element type.
*/
public class LinkedList<E> extends AbstractSequentialList<E> implements
- List<E>, Queue<E>, Cloneable {
+ List<E>, Queue<E>, Cloneable, Serializable {
public LinkedList() {
// TODO(jat): implement
diff --git a/user/super/com/google/gwt/emul/java/util/Vector.java b/user/super/com/google/gwt/emul/java/util/Vector.java
index 9d9c182..1edcb4f 100644
--- a/user/super/com/google/gwt/emul/java/util/Vector.java
+++ b/user/super/com/google/gwt/emul/java/util/Vector.java
@@ -15,6 +15,8 @@
*/
package java.util;
+import java.io.Serializable;
+
/**
* To keep performance characteristics in line with Java community expectations,
* <code>Vector</code> is a wrapper around <code>ArrayList</code>. <a
@@ -24,7 +26,7 @@
* @param <E> element type.
*/
public class Vector<E> extends AbstractList<E> implements List<E>,
- RandomAccess, Cloneable {
+ RandomAccess, Cloneable, Serializable {
private transient ArrayList<E> arrayList;