Package com.google.gson.internal.bind
Class TreeTypeAdapter<T>
- java.lang.Object
-
- com.google.gson.TypeAdapter<T>
-
- com.google.gson.internal.bind.TreeTypeAdapter<T>
-
public final class TreeTypeAdapter<T> extends TypeAdapter<T>
Adapts a Gson 1.x tree-style adapter as a streaming TypeAdapter. Since the tree adapter may be serialization-only or deserialization-only, this class has a facility to lookup a delegate type adapter on demand.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
TreeTypeAdapter.GsonContextImpl
private static class
TreeTypeAdapter.SingleTypeFactory
-
Field Summary
Fields Modifier and Type Field Description private TreeTypeAdapter.GsonContextImpl
context
private TypeAdapter<T>
delegate
The delegate is lazily created because it may not be needed, and creating it may fail.private JsonDeserializer<T>
deserializer
(package private) Gson
gson
private JsonSerializer<T>
serializer
private TypeAdapterFactory
skipPast
private TypeToken<T>
typeToken
-
Constructor Summary
Constructors Constructor Description TreeTypeAdapter(JsonSerializer<T> serializer, JsonDeserializer<T> deserializer, Gson gson, TypeToken<T> typeToken, TypeAdapterFactory skipPast)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private TypeAdapter<T>
delegate()
static TypeAdapterFactory
newFactory(TypeToken<?> exactType, java.lang.Object typeAdapter)
Returns a new factory that will match each type againstexactType
.static TypeAdapterFactory
newFactoryWithMatchRawType(TypeToken<?> exactType, java.lang.Object typeAdapter)
Returns a new factory that will match each type and its raw type againstexactType
.static TypeAdapterFactory
newTypeHierarchyFactory(java.lang.Class<?> hierarchyType, java.lang.Object typeAdapter)
Returns a new factory that will match each type's raw type for assignability tohierarchyType
.T
read(JsonReader in)
Reads one JSON value (an array, object, string, number, boolean or null) and converts it to a Java object.void
write(JsonWriter out, T value)
Writes one JSON value (an array, object, string, number, boolean or null) forvalue
.-
Methods inherited from class com.google.gson.TypeAdapter
fromJson, fromJson, fromJsonTree, nullSafe, toJson, toJson, toJsonTree
-
-
-
-
Field Detail
-
serializer
private final JsonSerializer<T> serializer
-
deserializer
private final JsonDeserializer<T> deserializer
-
gson
final Gson gson
-
skipPast
private final TypeAdapterFactory skipPast
-
context
private final TreeTypeAdapter.GsonContextImpl context
-
delegate
private TypeAdapter<T> delegate
The delegate is lazily created because it may not be needed, and creating it may fail.
-
-
Constructor Detail
-
TreeTypeAdapter
public TreeTypeAdapter(JsonSerializer<T> serializer, JsonDeserializer<T> deserializer, Gson gson, TypeToken<T> typeToken, TypeAdapterFactory skipPast)
-
-
Method Detail
-
read
public T read(JsonReader in) throws java.io.IOException
Description copied from class:TypeAdapter
Reads one JSON value (an array, object, string, number, boolean or null) and converts it to a Java object. Returns the converted object.- Specified by:
read
in classTypeAdapter<T>
- Returns:
- the converted Java object. May be null.
- Throws:
java.io.IOException
-
write
public void write(JsonWriter out, T value) throws java.io.IOException
Description copied from class:TypeAdapter
Writes one JSON value (an array, object, string, number, boolean or null) forvalue
.- Specified by:
write
in classTypeAdapter<T>
value
- the Java object to write. May be null.- Throws:
java.io.IOException
-
delegate
private TypeAdapter<T> delegate()
-
newFactory
public static TypeAdapterFactory newFactory(TypeToken<?> exactType, java.lang.Object typeAdapter)
Returns a new factory that will match each type againstexactType
.
-
newFactoryWithMatchRawType
public static TypeAdapterFactory newFactoryWithMatchRawType(TypeToken<?> exactType, java.lang.Object typeAdapter)
Returns a new factory that will match each type and its raw type againstexactType
.
-
newTypeHierarchyFactory
public static TypeAdapterFactory newTypeHierarchyFactory(java.lang.Class<?> hierarchyType, java.lang.Object typeAdapter)
Returns a new factory that will match each type's raw type for assignability tohierarchyType
.
-
-