Package com.google.gson.internal.bind
Class ReflectiveTypeAdapterFactory
- 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 classReflectiveTypeAdapterFactory.Adapter<T,A>Base class for Adapters produced by this factory.(package private) static classReflectiveTypeAdapterFactory.BoundFieldprivate static classReflectiveTypeAdapterFactory.FieldReflectionAdapter<T>private static classReflectiveTypeAdapterFactory.FieldsDataprivate static classReflectiveTypeAdapterFactory.RecordAdapter<T>
-
Field Summary
Fields Modifier and Type Field Description private ConstructorConstructorconstructorConstructorprivate Excluderexcluderprivate FieldNamingStrategyfieldNamingPolicyprivate JsonAdapterAnnotationTypeAdapterFactoryjsonAdapterFactoryprivate 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.BoundFieldcreateBoundField(Gson context, java.lang.reflect.Field field, java.lang.reflect.Method accessor, java.lang.String serializedName, TypeToken<?> fieldType, boolean serialize, boolean blockInaccessible)private static java.lang.IllegalArgumentExceptioncreateDuplicateFieldException(java.lang.Class<?> declaringType, java.lang.String duplicateName, java.lang.reflect.Field field1, java.lang.reflect.Field field2)private ReflectiveTypeAdapterFactory.FieldsDatagetBoundFields(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 booleanincludeField(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:TypeAdapterFactoryReturns a type adapter fortype, or null if this factory doesn't supporttype.- Specified by:
createin 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 serializedName, TypeToken<?> fieldType, boolean serialize, boolean blockInaccessible)
-
createDuplicateFieldException
private static java.lang.IllegalArgumentException createDuplicateFieldException(java.lang.Class<?> declaringType, java.lang.String duplicateName, java.lang.reflect.Field field1, java.lang.reflect.Field field2)
-
getBoundFields
private ReflectiveTypeAdapterFactory.FieldsData getBoundFields(Gson context, TypeToken<?> type, java.lang.Class<?> raw, boolean blockInaccessible, boolean isRecord)
-
-