Package com.google.gson.internal.bind
Class ReflectiveTypeAdapterFactory.Adapter<T,A>
- java.lang.Object
-
- com.google.gson.TypeAdapter<T>
-
- com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.Adapter<T,A>
-
- Type Parameters:
T- type of objects that this Adapter creates.A- type of accumulator used to build the deserialization result.
- Direct Known Subclasses:
ReflectiveTypeAdapterFactory.FieldReflectionAdapter,ReflectiveTypeAdapterFactory.RecordAdapter
- Enclosing class:
- ReflectiveTypeAdapterFactory
public abstract static class ReflectiveTypeAdapterFactory.Adapter<T,A> extends TypeAdapter<T>
Base class for Adapters produced by this factory.The
ReflectiveTypeAdapterFactory.RecordAdapteris a special case to handle records for JVMs that support it, for all other types we use theReflectiveTypeAdapterFactory.FieldReflectionAdapter. This class encapsulates the common logic for serialization and deserialization. During deserialization, we construct an accumulator A, which we use to accumulate values from the source JSON. After the object has been read in full, thefinalize(Object)method is used to convert the accumulator to an instance of T.
-
-
Field Summary
Fields Modifier and Type Field Description private ReflectiveTypeAdapterFactory.FieldsDatafieldsData
-
Constructor Summary
Constructors Constructor Description Adapter(ReflectiveTypeAdapterFactory.FieldsData fieldsData)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description (package private) abstract AcreateAccumulator()Create the Object that will be used to collect each field value(package private) abstract Tfinalize(A accumulator)Convert the accumulator to a final instance of T.Tread(JsonReader in)Reads one JSON value (an array, object, string, number, boolean or null) and converts it to a Java object.(package private) abstract voidreadField(A accumulator, JsonReader in, ReflectiveTypeAdapterFactory.BoundField field)Read a single BoundField into the accumulator.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
-
fieldsData
private final ReflectiveTypeAdapterFactory.FieldsData fieldsData
-
-
Constructor Detail
-
Adapter
Adapter(ReflectiveTypeAdapterFactory.FieldsData fieldsData)
-
-
Method Detail
-
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
-
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
-
createAccumulator
abstract A createAccumulator()
Create the Object that will be used to collect each field value
-
readField
abstract void readField(A accumulator, JsonReader in, ReflectiveTypeAdapterFactory.BoundField field) throws java.lang.IllegalAccessException, java.io.IOException
Read a single BoundField into the accumulator. The JsonReader will be pointed at the start of the value for the BoundField to read from.- Throws:
java.lang.IllegalAccessExceptionjava.io.IOException
-
-