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
Base class for Adapters produced by this factory.
The ReflectiveTypeAdapterFactory.RecordAdapter is a special case to handle records for JVMs that support it, for
all other types we use the ReflectiveTypeAdapterFactory.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, the finalize(Object) method is used to convert the accumulator to an instance
of T.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final Map<String, ReflectiveTypeAdapterFactory.BoundField> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) abstract ACreate the Object that will be used to collect each field value(package private) abstract TConvert the accumulator to a final instance of T.read(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 Details
-
boundFields
-
-
Constructor Details
-
Adapter
Adapter(Map<String, ReflectiveTypeAdapterFactory.BoundField> boundFields)
-
-
Method Details
-
write
Description copied from class:TypeAdapterWrites one JSON value (an array, object, string, number, boolean or null) forvalue.- Specified by:
writein classTypeAdapter<T>- Parameters:
value- the Java object to write. May be null.- Throws:
IOException
-
read
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:
IOException
-
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 IllegalAccessException, 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:
IllegalAccessExceptionIOException
-
finalize
Convert the accumulator to a final instance of T.
-