public final class com.google.gson.internal.bind.MapTypeAdapterFactory implements com.google.gson.TypeAdapterFactory
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.google.gson.internal.bind.MapTypeAdapterFactory
super_class: java.lang.Object
{
private final com.google.gson.internal.ConstructorConstructor constructorConstructor;
descriptor: Lcom/google/gson/internal/ConstructorConstructor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final boolean complexMapKeySerialization;
descriptor: Z
flags: (0x0010) ACC_FINAL
public void <init>(com.google.gson.internal.ConstructorConstructor, boolean);
descriptor: (Lcom/google/gson/internal/ConstructorConstructor;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.google.gson.internal.bind.MapTypeAdapterFactory.constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
2: aload 0
iload 2
putfield com.google.gson.internal.bind.MapTypeAdapterFactory.complexMapKeySerialization:Z
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/gson/internal/bind/MapTypeAdapterFactory;
0 4 1 constructorConstructor Lcom/google/gson/internal/ConstructorConstructor;
0 4 2 complexMapKeySerialization Z
MethodParameters:
Name Flags
constructorConstructor
complexMapKeySerialization
public <T> com.google.gson.TypeAdapter<T> create(com.google.gson.Gson, com.google.gson.reflect.TypeToken<T>);
descriptor: (Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual com.google.gson.reflect.TypeToken.getType:()Ljava/lang/reflect/Type;
astore 3
start local 3 1: aload 2
invokevirtual com.google.gson.reflect.TypeToken.getRawType:()Ljava/lang/Class;
astore 4
start local 4 2: ldc Ljava/util/Map;
aload 4
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 4
3: aconst_null
areturn
4: StackMap locals: java.lang.reflect.Type java.lang.Class
StackMap stack:
aload 3
invokestatic com.google.gson.internal.$Gson$Types.getRawType:(Ljava/lang/reflect/Type;)Ljava/lang/Class;
astore 5
start local 5 5: aload 3
aload 5
invokestatic com.google.gson.internal.$Gson$Types.getMapKeyAndValueTypes:(Ljava/lang/reflect/Type;Ljava/lang/Class;)[Ljava/lang/reflect/Type;
astore 6
start local 6 6: aload 0
aload 1
aload 6
iconst_0
aaload
invokevirtual com.google.gson.internal.bind.MapTypeAdapterFactory.getKeyAdapter:(Lcom/google/gson/Gson;Ljava/lang/reflect/Type;)Lcom/google/gson/TypeAdapter;
astore 7
start local 7 7: aload 1
aload 6
iconst_1
aaload
invokestatic com.google.gson.reflect.TypeToken.get:(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
invokevirtual com.google.gson.Gson.getAdapter:(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
astore 8
start local 8 8: aload 0
getfield com.google.gson.internal.bind.MapTypeAdapterFactory.constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
aload 2
invokevirtual com.google.gson.internal.ConstructorConstructor.get:(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/internal/ObjectConstructor;
astore 9
start local 9 9: new com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter
dup
aload 0
aload 1
aload 6
iconst_0
aaload
aload 7
10: aload 6
iconst_1
aaload
aload 8
aload 9
11: invokespecial com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.<init>:(Lcom/google/gson/internal/bind/MapTypeAdapterFactory;Lcom/google/gson/Gson;Ljava/lang/reflect/Type;Lcom/google/gson/TypeAdapter;Ljava/lang/reflect/Type;Lcom/google/gson/TypeAdapter;Lcom/google/gson/internal/ObjectConstructor;)V
astore 10
start local 10 12: aload 10
areturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/google/gson/internal/bind/MapTypeAdapterFactory;
0 13 1 gson Lcom/google/gson/Gson;
0 13 2 typeToken Lcom/google/gson/reflect/TypeToken<TT;>;
1 13 3 type Ljava/lang/reflect/Type;
2 13 4 rawType Ljava/lang/Class<-TT;>;
5 13 5 rawTypeOfSrc Ljava/lang/Class<*>;
6 13 6 keyAndValueTypes [Ljava/lang/reflect/Type;
7 13 7 keyAdapter Lcom/google/gson/TypeAdapter<*>;
8 13 8 valueAdapter Lcom/google/gson/TypeAdapter<*>;
9 13 9 constructor Lcom/google/gson/internal/ObjectConstructor<TT;>;
12 13 10 result Lcom/google/gson/TypeAdapter<TT;>;
Signature: <T:Ljava/lang/Object;>(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken<TT;>;)Lcom/google/gson/TypeAdapter<TT;>;
MethodParameters:
Name Flags
gson
typeToken
private com.google.gson.TypeAdapter<?> getKeyAdapter(com.google.gson.Gson, java.lang.reflect.Type);
descriptor: (Lcom/google/gson/Gson;Ljava/lang/reflect/Type;)Lcom/google/gson/TypeAdapter;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpeq 1
aload 2
ldc Ljava/lang/Boolean;
if_acmpne 2
1: StackMap locals:
StackMap stack:
getstatic com.google.gson.internal.bind.TypeAdapters.BOOLEAN_AS_STRING:Lcom/google/gson/TypeAdapter;
goto 3
2: StackMap locals:
StackMap stack:
aload 1
aload 2
invokestatic com.google.gson.reflect.TypeToken.get:(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
invokevirtual com.google.gson.Gson.getAdapter:(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
3: StackMap locals:
StackMap stack: com.google.gson.TypeAdapter
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/gson/internal/bind/MapTypeAdapterFactory;
0 4 1 context Lcom/google/gson/Gson;
0 4 2 keyType Ljava/lang/reflect/Type;
Signature: (Lcom/google/gson/Gson;Ljava/lang/reflect/Type;)Lcom/google/gson/TypeAdapter<*>;
MethodParameters:
Name Flags
context
keyType
}
SourceFile: "MapTypeAdapterFactory.java"
NestMembers:
com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter
InnerClasses:
private final Adapter = com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter of com.google.gson.internal.bind.MapTypeAdapterFactory