diff --git a/extras/src/main/java/com/google/gson/graph/GraphAdapterBuilder.java b/extras/src/main/java/com/google/gson/graph/GraphAdapterBuilder.java index 976fe832..377934cc 100644 --- a/extras/src/main/java/com/google/gson/graph/GraphAdapterBuilder.java +++ b/extras/src/main/java/com/google/gson/graph/GraphAdapterBuilder.java @@ -84,7 +84,7 @@ public final class GraphAdapterBuilder { return null; } - final TypeAdapter typeAdapter = gson.getNextAdapter(this, type); + final TypeAdapter typeAdapter = gson.getDelegateAdapter(this, type); final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); return new TypeAdapter() { @Override public void write(JsonWriter out, T value) throws IOException { diff --git a/extras/src/main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java b/extras/src/main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java index 582c4fd5..1111ebc6 100644 --- a/extras/src/main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java +++ b/extras/src/main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java @@ -16,6 +16,10 @@ package com.google.gson.typeadapters; +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.Map; + import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -27,9 +31,6 @@ import com.google.gson.internal.Streams; import com.google.gson.reflect.TypeToken; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import java.io.IOException; -import java.util.LinkedHashMap; -import java.util.Map; /** * Adapts values whose runtime type may differ from their declaration type. This @@ -180,7 +181,7 @@ public final class RuntimeTypeAdapterFactory implements TypeAdapterFactory { return registerSubtype(type, type.getSimpleName()); } - public TypeAdapter create(Gson gson, TypeToken type) { + public TypeAdapter create(Gson gson, TypeToken type) { if (type.getRawType() != baseType) { return null; } @@ -190,13 +191,13 @@ public final class RuntimeTypeAdapterFactory implements TypeAdapterFactory { final Map, TypeAdapter> subtypeToDelegate = new LinkedHashMap, TypeAdapter>(); for (Map.Entry> entry : labelToSubtype.entrySet()) { - TypeAdapter delegate = gson.getNextAdapter(this, TypeToken.get(entry.getValue())); + TypeAdapter delegate = gson.getDelegateAdapter(this, TypeToken.get(entry.getValue())); labelToDelegate.put(entry.getKey(), delegate); subtypeToDelegate.put(entry.getValue(), delegate); } - return new TypeAdapter() { - @Override public T read(JsonReader in) throws IOException { + return new TypeAdapter() { + @Override public R read(JsonReader in) throws IOException { JsonElement jsonElement = Streams.parse(in); JsonElement labelJsonElement = jsonElement.getAsJsonObject().remove(typeFieldName); if (labelJsonElement == null) { @@ -205,7 +206,7 @@ public final class RuntimeTypeAdapterFactory implements TypeAdapterFactory { } String label = labelJsonElement.getAsString(); @SuppressWarnings("unchecked") // registration requires that subtype extends T - TypeAdapter delegate = (TypeAdapter) labelToDelegate.get(label); + TypeAdapter delegate = (TypeAdapter) labelToDelegate.get(label); if (delegate == null) { throw new JsonParseException("cannot deserialize " + baseType + " subtype named " + label + "; did you forget to register a subtype?"); @@ -213,11 +214,11 @@ public final class RuntimeTypeAdapterFactory implements TypeAdapterFactory { return delegate.fromJsonTree(jsonElement); } - @Override public void write(JsonWriter out, T value) throws IOException { + @Override public void write(JsonWriter out, R value) throws IOException { Class srcType = value.getClass(); String label = subtypeToLabel.get(srcType); @SuppressWarnings("unchecked") // registration requires that subtype extends T - TypeAdapter delegate = (TypeAdapter) subtypeToDelegate.get(srcType); + TypeAdapter delegate = (TypeAdapter) subtypeToDelegate.get(srcType); if (delegate == null) { throw new JsonParseException("cannot serialize " + srcType.getName() + "; did you forget to register a subtype?");