- java.lang.Object
-
- com.google.gson.internal.bind.ReflectiveTypeAdapterFactory
-
- All Implemented Interfaces:
TypeAdapterFactory
public final class ReflectiveTypeAdapterFactory extends java.lang.Object implements TypeAdapterFactory
Type adapter that reflects over the fields and methods of a class.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ReflectiveTypeAdapterFactory.Adapter<T,A>
Base class for Adapters produced by this factory.(package private) static class
ReflectiveTypeAdapterFactory.BoundField
private static class
ReflectiveTypeAdapterFactory.FieldReflectionAdapter<T>
private static class
ReflectiveTypeAdapterFactory.RecordAdapter<T>
-
Field Summary
Fields Modifier and Type Field Description private ConstructorConstructor
constructorConstructor
private Excluder
excluder
private FieldNamingStrategy
fieldNamingPolicy
private JsonAdapterAnnotationTypeAdapterFactory
jsonAdapterFactory
private java.util.List<ReflectionAccessFilter>
reflectionFilters
-
Constructor Summary
Constructors Constructor Description ReflectiveTypeAdapterFactory(ConstructorConstructor constructorConstructor, FieldNamingStrategy fieldNamingPolicy, Excluder excluder, JsonAdapterAnnotationTypeAdapterFactory jsonAdapterFactory, java.util.List<ReflectionAccessFilter> reflectionFilters)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static <M extends java.lang.reflect.AccessibleObject & java.lang.reflect.Member>
voidcheckAccessible(java.lang.Object object, M member)
<T> TypeAdapter<T>
create(Gson gson, TypeToken<T> type)
Returns a type adapter fortype
, or null if this factory doesn't supporttype
.private ReflectiveTypeAdapterFactory.BoundField
createBoundField(Gson context, java.lang.reflect.Field field, java.lang.reflect.Method accessor, java.lang.String name, TypeToken<?> fieldType, boolean serialize, boolean deserialize, boolean blockInaccessible)
private java.util.Map<java.lang.String,ReflectiveTypeAdapterFactory.BoundField>
getBoundFields(Gson context, TypeToken<?> type, java.lang.Class<?> raw, boolean blockInaccessible, boolean isRecord)
private java.util.List<java.lang.String>
getFieldNames(java.lang.reflect.Field f)
first element holds the default nameprivate boolean
includeField(java.lang.reflect.Field f, boolean serialize)
-
-
-
Field Detail
-
constructorConstructor
private final ConstructorConstructor constructorConstructor
-
fieldNamingPolicy
private final FieldNamingStrategy fieldNamingPolicy
-
excluder
private final Excluder excluder
-
jsonAdapterFactory
private final JsonAdapterAnnotationTypeAdapterFactory jsonAdapterFactory
-
reflectionFilters
private final java.util.List<ReflectionAccessFilter> reflectionFilters
-
-
Constructor Detail
-
ReflectiveTypeAdapterFactory
public ReflectiveTypeAdapterFactory(ConstructorConstructor constructorConstructor, FieldNamingStrategy fieldNamingPolicy, Excluder excluder, JsonAdapterAnnotationTypeAdapterFactory jsonAdapterFactory, java.util.List<ReflectionAccessFilter> reflectionFilters)
-
-
Method Detail
-
includeField
private boolean includeField(java.lang.reflect.Field f, boolean serialize)
-
getFieldNames
private java.util.List<java.lang.String> getFieldNames(java.lang.reflect.Field f)
first element holds the default name
-
create
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type)
Description copied from interface:TypeAdapterFactory
Returns a type adapter fortype
, or null if this factory doesn't supporttype
.- Specified by:
create
in interfaceTypeAdapterFactory
-
checkAccessible
private static <M extends java.lang.reflect.AccessibleObject & java.lang.reflect.Member> void checkAccessible(java.lang.Object object, M member)
-
createBoundField
private ReflectiveTypeAdapterFactory.BoundField createBoundField(Gson context, java.lang.reflect.Field field, java.lang.reflect.Method accessor, java.lang.String name, TypeToken<?> fieldType, boolean serialize, boolean deserialize, boolean blockInaccessible)
-
getBoundFields
private java.util.Map<java.lang.String,ReflectiveTypeAdapterFactory.BoundField> getBoundFields(Gson context, TypeToken<?> type, java.lang.Class<?> raw, boolean blockInaccessible, boolean isRecord)
-
-