Package com.google.gson.internal.bind
Class JsonAdapterAnnotationTypeAdapterFactory
- java.lang.Object
-
- com.google.gson.internal.bind.JsonAdapterAnnotationTypeAdapterFactory
-
- All Implemented Interfaces:
TypeAdapterFactory
public final class JsonAdapterAnnotationTypeAdapterFactory extends java.lang.Object implements TypeAdapterFactory
Given a type T, looks for the annotationJsonAdapterand uses an instance of the specified class as the default type adapter.- Since:
- 2.3
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classJsonAdapterAnnotationTypeAdapterFactory.DummyTypeAdapterFactory
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.ConcurrentMap<java.lang.Class<?>,TypeAdapterFactory>adapterFactoryMapFor a class, if it is annotated with@JsonAdapterand refers to aTypeAdapterFactory, stores the factory instance in case it has been requested already.private ConstructorConstructorconstructorConstructorprivate static TypeAdapterFactoryTREE_TYPE_CLASS_DUMMY_FACTORYFactory used forTreeTypeAdapters created for@JsonAdapteron a class.private static TypeAdapterFactoryTREE_TYPE_FIELD_DUMMY_FACTORYFactory used forTreeTypeAdapters created for@JsonAdapteron a field.
-
Constructor Summary
Constructors Constructor Description JsonAdapterAnnotationTypeAdapterFactory(ConstructorConstructor constructorConstructor)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> TypeAdapter<T>create(Gson gson, TypeToken<T> targetType)Returns a type adapter fortype, or null if this factory doesn't supporttype.private static java.lang.ObjectcreateAdapter(ConstructorConstructor constructorConstructor, java.lang.Class<?> adapterClass)private static JsonAdaptergetAnnotation(java.lang.Class<?> rawType)(package private) TypeAdapter<?>getTypeAdapter(ConstructorConstructor constructorConstructor, Gson gson, TypeToken<?> type, JsonAdapter annotation, boolean isClassAnnotation)booleanisClassJsonAdapterFactory(TypeToken<?> type, TypeAdapterFactory factory)Returns whetherfactoryis a type adapter factory created for@JsonAdapterplaced ontype.private TypeAdapterFactoryputFactoryAndGetCurrent(java.lang.Class<?> rawType, TypeAdapterFactory factory)
-
-
-
Field Detail
-
TREE_TYPE_CLASS_DUMMY_FACTORY
private static final TypeAdapterFactory TREE_TYPE_CLASS_DUMMY_FACTORY
Factory used forTreeTypeAdapters created for@JsonAdapteron a class.
-
TREE_TYPE_FIELD_DUMMY_FACTORY
private static final TypeAdapterFactory TREE_TYPE_FIELD_DUMMY_FACTORY
Factory used forTreeTypeAdapters created for@JsonAdapteron a field.
-
constructorConstructor
private final ConstructorConstructor constructorConstructor
-
adapterFactoryMap
private final java.util.concurrent.ConcurrentMap<java.lang.Class<?>,TypeAdapterFactory> adapterFactoryMap
For a class, if it is annotated with@JsonAdapterand refers to aTypeAdapterFactory, stores the factory instance in case it has been requested already. Has to be aConcurrentMapbecauseGsonguarantees to be thread-safe.
-
-
Constructor Detail
-
JsonAdapterAnnotationTypeAdapterFactory
public JsonAdapterAnnotationTypeAdapterFactory(ConstructorConstructor constructorConstructor)
-
-
Method Detail
-
getAnnotation
private static JsonAdapter getAnnotation(java.lang.Class<?> rawType)
-
create
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> targetType)
Description copied from interface:TypeAdapterFactoryReturns a type adapter fortype, or null if this factory doesn't supporttype.- Specified by:
createin interfaceTypeAdapterFactory
-
createAdapter
private static java.lang.Object createAdapter(ConstructorConstructor constructorConstructor, java.lang.Class<?> adapterClass)
-
putFactoryAndGetCurrent
private TypeAdapterFactory putFactoryAndGetCurrent(java.lang.Class<?> rawType, TypeAdapterFactory factory)
-
getTypeAdapter
TypeAdapter<?> getTypeAdapter(ConstructorConstructor constructorConstructor, Gson gson, TypeToken<?> type, JsonAdapter annotation, boolean isClassAnnotation)
-
isClassJsonAdapterFactory
public boolean isClassJsonAdapterFactory(TypeToken<?> type, TypeAdapterFactory factory)
Returns whetherfactoryis a type adapter factory created for@JsonAdapterplaced ontype.
-
-