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 A
Create the Object that will be used to collect each field value(package private) abstract T
Convert 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 void
readField
(A accumulator, JsonReader in, ReflectiveTypeAdapterFactory.BoundField field) Read a single BoundField into the accumulator.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 Details
-
boundFields
-
-
Constructor Details
-
Adapter
Adapter(Map<String, ReflectiveTypeAdapterFactory.BoundField> boundFields)
-
-
Method Details
-
write
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:
IOException
-
read
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:
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:
IllegalAccessException
IOException
-
finalize
Convert the accumulator to a final instance of T.
-