From 6f6d3b221e563a1706727fce8bc26e83fee3144a Mon Sep 17 00:00:00 2001 From: Inderjeet Singh Date: Fri, 9 Sep 2011 05:49:30 +0000 Subject: [PATCH] Added support for constructing Queues and SortedSet while handling collections. --- .../google/gson/internal/bind/CollectionTypeAdapter.java | 9 ++++++++- .../java/com/google/gson/internal/bind/MiniGson.java | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/gson/src/main/java/com/google/gson/internal/bind/CollectionTypeAdapter.java b/gson/src/main/java/com/google/gson/internal/bind/CollectionTypeAdapter.java index cceb1f96..01747b51 100644 --- a/gson/src/main/java/com/google/gson/internal/bind/CollectionTypeAdapter.java +++ b/gson/src/main/java/com/google/gson/internal/bind/CollectionTypeAdapter.java @@ -22,8 +22,12 @@ import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashSet; +import java.util.LinkedList; import java.util.List; +import java.util.Queue; import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; import com.google.gson.internal.$Gson$Types; import com.google.gson.reflect.TypeToken; @@ -53,10 +57,13 @@ public final class CollectionTypeAdapter extends TypeAdapter> { constructorType = ArrayList.class; } else if (rawType == Set.class) { constructorType = LinkedHashSet.class; + } else if (rawType == Queue.class) { + constructorType = LinkedList.class; + } else if (rawType == SortedSet.class) { + constructorType = TreeSet.class; } else { constructorType = rawType; } - // TODO: Queue=LinkedList, SortedSet=TreeSet Constructor constructor = null; try { diff --git a/gson/src/main/java/com/google/gson/internal/bind/MiniGson.java b/gson/src/main/java/com/google/gson/internal/bind/MiniGson.java index 537ad896..79f7a01b 100644 --- a/gson/src/main/java/com/google/gson/internal/bind/MiniGson.java +++ b/gson/src/main/java/com/google/gson/internal/bind/MiniGson.java @@ -166,8 +166,8 @@ public final class MiniGson { return this; } - public Builder typeHierarchyAdapter(Class clazz, TypeAdapter typeAdapter) { - factories.add(TypeAdapters.newTypeHierarchyFactory(clazz, typeAdapter)); + public Builder typeHierarchyAdapter(Class type, TypeAdapter typeAdapter) { + factories.add(TypeAdapters.newTypeHierarchyFactory(type, typeAdapter)); return this; }