- java.lang.Object
-
- com.google.gson.TypeAdapter<T>
-
- com.google.gson.internal.bind.SerializationDelegatingTypeAdapter<T>
-
- com.google.gson.internal.bind.TreeTypeAdapter<T>
-
public final class TreeTypeAdapter<T> extends SerializationDelegatingTypeAdapter<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 boolean
nullSafe
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)
TreeTypeAdapter(JsonSerializer<T> serializer, JsonDeserializer<T> deserializer, Gson gson, TypeToken<T> typeToken, TypeAdapterFactory skipPast, boolean nullSafe)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private TypeAdapter<T>
delegate()
TypeAdapter<T>
getSerializationDelegate()
Returns the type adapter which is used for serialization.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
-
nullSafe
private final boolean nullSafe
-
delegate
private volatile 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, boolean nullSafe)
-
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()
-
getSerializationDelegate
public TypeAdapter<T> getSerializationDelegate()
Returns the type adapter which is used for serialization. Returnsthis
if thisTreeTypeAdapter
has aserializer
; otherwise returns the delegate.- Specified by:
getSerializationDelegate
in classSerializationDelegatingTypeAdapter<T>
-
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
.
-
-