Package com.google.gson.internal.bind
Class TreeTypeAdapter<T>
- 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 look up a delegate type adapter on demand.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classTreeTypeAdapter.GsonContextImplprivate static classTreeTypeAdapter.SingleTypeFactory
-
Field Summary
Fields Modifier and Type Field Description private TreeTypeAdapter.GsonContextImplcontextprivate TypeAdapter<T>delegateThe delegate is lazily created because it may not be needed, and creating it may fail.private JsonDeserializer<T>deserializer(package private) Gsongsonprivate booleannullSafeprivate JsonSerializer<T>serializerprivate TypeAdapterFactoryskipPastForGetDelegateAdapterOnly intended asskipPastforGson.getDelegateAdapter(TypeAdapterFactory, TypeToken), must not be used in any other way.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 TypeAdapterFactorynewFactory(TypeToken<?> exactType, java.lang.Object typeAdapter)Returns a new factory that will match each type againstexactType.static TypeAdapterFactorynewFactoryWithMatchRawType(TypeToken<?> exactType, java.lang.Object typeAdapter)Returns a new factory that will match each type and its raw type againstexactType.static TypeAdapterFactorynewTypeHierarchyFactory(java.lang.Class<?> hierarchyType, java.lang.Object typeAdapter)Returns a new factory that will match each type's raw type for assignability tohierarchyType.Tread(JsonReader in)Reads one JSON value (an array, object, string, number, boolean or null) and converts it to a Java object.voidwrite(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
-
skipPastForGetDelegateAdapter
private final TypeAdapterFactory skipPastForGetDelegateAdapter
Only intended asskipPastforGson.getDelegateAdapter(TypeAdapterFactory, TypeToken), must not be used in any other way.
-
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. Field has to bevolatilebecauseGsonguarantees to be thread-safe.
-
-
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:TypeAdapterReads one JSON value (an array, object, string, number, boolean or null) and converts it to a Java object. Returns the converted object.- Specified by:
readin 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:TypeAdapterWrites one JSON value (an array, object, string, number, boolean or null) forvalue.- Specified by:
writein 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. Returnsthisif thisTreeTypeAdapterhas aserializer; otherwise returns the delegate.- Specified by:
getSerializationDelegatein 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.
-
-