$Gson$Types.smali
.class public final Lcom/google/gson/internal/$Gson$Types;
.super Ljava/lang/Object;
.source "$Gson$Types.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;,
Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl;,
Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;
}
.end annotation
# static fields
.field static final EMPTY_TYPE_ARRAY:[Ljava/lang/reflect/Type;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 44
const/4 v0, 0x0
new-array v0, v0, [Ljava/lang/reflect/Type;
sput-object v0, Lcom/google/gson/internal/$Gson$Types;->EMPTY_TYPE_ARRAY:[Ljava/lang/reflect/Type;
return-void
.end method
.method private constructor <init>()V
.registers 2
.prologue
.line 46
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 47
new-instance v0, Ljava/lang/UnsupportedOperationException;
invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;-><init>()V
throw v0
.end method
.method public static arrayOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/GenericArrayType;
.registers 2
.prologue
.line 68
new-instance v0, Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl;
invoke-direct {v0, p0}, Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl;-><init>(Ljava/lang/reflect/Type;)V
return-object v0
.end method
.method public static canonicalize(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.registers 5
.prologue
.line 96
instance-of v0, p0, Ljava/lang/Class;
if-eqz v0, :cond_1e
.line 97
check-cast p0, Ljava/lang/Class;
.line 98
invoke-virtual {p0}, Ljava/lang/Class;->isArray()Z
move-result v0
if-eqz v0, :cond_1c
new-instance v0, Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl;
invoke-virtual {p0}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object v1
invoke-static {v1}, Lcom/google/gson/internal/$Gson$Types;->canonicalize(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl;-><init>(Ljava/lang/reflect/Type;)V
:goto_19
check-cast v0, Ljava/lang/reflect/Type;
.line 115
:goto_1b
return-object v0
:cond_1c
move-object v0, p0
.line 98
goto :goto_19
.line 100
:cond_1e
instance-of v0, p0, Ljava/lang/reflect/ParameterizedType;
if-eqz v0, :cond_36
.line 101
check-cast p0, Ljava/lang/reflect/ParameterizedType;
.line 102
new-instance v0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;
invoke-interface {p0}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object v1
.line 103
invoke-interface {p0}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v2
invoke-interface {p0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v3
invoke-direct {v0, v1, v2, v3}, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;-><init>(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)V
goto :goto_1b
.line 105
:cond_36
instance-of v0, p0, Ljava/lang/reflect/GenericArrayType;
if-eqz v0, :cond_46
.line 106
check-cast p0, Ljava/lang/reflect/GenericArrayType;
.line 107
new-instance v0, Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl;
invoke-interface {p0}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/gson/internal/$Gson$Types$GenericArrayTypeImpl;-><init>(Ljava/lang/reflect/Type;)V
goto :goto_1b
.line 109
:cond_46
instance-of v0, p0, Ljava/lang/reflect/WildcardType;
if-eqz v0, :cond_5a
.line 110
check-cast p0, Ljava/lang/reflect/WildcardType;
.line 111
new-instance v0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;
invoke-interface {p0}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object v1
invoke-interface {p0}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type;
move-result-object v2
invoke-direct {v0, v1, v2}, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;-><init>([Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)V
goto :goto_1b
:cond_5a
move-object v0, p0
.line 115
goto :goto_1b
.end method
.method static checkNotPrimitive(Ljava/lang/reflect/Type;)V
.registers 2
.prologue
.line 434
instance-of v0, p0, Ljava/lang/Class;
if-eqz v0, :cond_c
check-cast p0, Ljava/lang/Class;
invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z
move-result v0
if-nez v0, :cond_11
:cond_c
const/4 v0, 0x1
:goto_d
invoke-static {v0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V
.line 435
return-void
.line 434
:cond_11
const/4 v0, 0x0
goto :goto_d
.end method
.method private static declaringClassOf(Ljava/lang/reflect/TypeVariable;)Ljava/lang/Class;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/TypeVariable",
"<*>;)",
"Ljava/lang/Class",
"<*>;"
}
.end annotation
.prologue
.line 427
invoke-interface {p0}, Ljava/lang/reflect/TypeVariable;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;
move-result-object v0
.line 428
instance-of v1, v0, Ljava/lang/Class;
if-eqz v1, :cond_b
check-cast v0, Ljava/lang/Class;
:goto_a
return-object v0
:cond_b
const/4 v0, 0x0
goto :goto_a
.end method
.method static equal(Ljava/lang/Object;Ljava/lang/Object;)Z
.registers 3
.prologue
.line 154
if-eq p0, p1, :cond_a
if-eqz p0, :cond_c
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_c
:cond_a
const/4 v0, 0x1
:goto_b
return v0
:cond_c
const/4 v0, 0x0
goto :goto_b
.end method
.method public static equals(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z
.registers 6
.prologue
const/4 v0, 0x1
const/4 v1, 0x0
.line 161
if-ne p0, p1, :cond_6
move v1, v0
.line 211
:cond_5
:goto_5
return v1
.line 165
:cond_6
instance-of v2, p0, Ljava/lang/Class;
if-eqz v2, :cond_f
.line 167
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v1
goto :goto_5
.line 169
:cond_f
instance-of v2, p0, Ljava/lang/reflect/ParameterizedType;
if-eqz v2, :cond_49
.line 170
instance-of v2, p1, Ljava/lang/reflect/ParameterizedType;
if-eqz v2, :cond_5
.line 175
check-cast p0, Ljava/lang/reflect/ParameterizedType;
.line 176
check-cast p1, Ljava/lang/reflect/ParameterizedType;
.line 177
invoke-interface {p0}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object v2
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object v3
invoke-static {v2, v3}, Lcom/google/gson/internal/$Gson$Types;->equal(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_47
.line 178
invoke-interface {p0}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v2
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_47
.line 179
invoke-interface {p0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v2
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v3
invoke-static {v2, v3}, Ljava/util/Arrays;->equals([Ljava/lang/Object;[Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_47
:goto_45
move v1, v0
goto :goto_5
:cond_47
move v0, v1
goto :goto_45
.line 181
:cond_49
instance-of v2, p0, Ljava/lang/reflect/GenericArrayType;
if-eqz v2, :cond_62
.line 182
instance-of v0, p1, Ljava/lang/reflect/GenericArrayType;
if-eqz v0, :cond_5
.line 186
check-cast p0, Ljava/lang/reflect/GenericArrayType;
.line 187
check-cast p1, Ljava/lang/reflect/GenericArrayType;
.line 188
invoke-interface {p0}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type;
move-result-object v0
invoke-interface {p1}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type;
move-result-object v1
invoke-static {v0, v1}, Lcom/google/gson/internal/$Gson$Types;->equals(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z
move-result v1
goto :goto_5
.line 190
:cond_62
instance-of v2, p0, Ljava/lang/reflect/WildcardType;
if-eqz v2, :cond_8f
.line 191
instance-of v2, p1, Ljava/lang/reflect/WildcardType;
if-eqz v2, :cond_5
.line 195
check-cast p0, Ljava/lang/reflect/WildcardType;
.line 196
check-cast p1, Ljava/lang/reflect/WildcardType;
.line 197
invoke-interface {p0}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object v2
invoke-interface {p1}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object v3
invoke-static {v2, v3}, Ljava/util/Arrays;->equals([Ljava/lang/Object;[Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_8d
.line 198
invoke-interface {p0}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type;
move-result-object v2
invoke-interface {p1}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type;
move-result-object v3
invoke-static {v2, v3}, Ljava/util/Arrays;->equals([Ljava/lang/Object;[Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_8d
:goto_8a
move v1, v0
goto/16 :goto_5
:cond_8d
move v0, v1
goto :goto_8a
.line 200
:cond_8f
instance-of v2, p0, Ljava/lang/reflect/TypeVariable;
if-eqz v2, :cond_5
.line 201
instance-of v2, p1, Ljava/lang/reflect/TypeVariable;
if-eqz v2, :cond_5
.line 204
check-cast p0, Ljava/lang/reflect/TypeVariable;
.line 205
check-cast p1, Ljava/lang/reflect/TypeVariable;
.line 206
invoke-interface {p0}, Ljava/lang/reflect/TypeVariable;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;
move-result-object v2
invoke-interface {p1}, Ljava/lang/reflect/TypeVariable;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;
move-result-object v3
if-ne v2, v3, :cond_b6
.line 207
invoke-interface {p0}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String;
move-result-object v2
invoke-interface {p1}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_b6
:goto_b3
move v1, v0
goto/16 :goto_5
:cond_b6
move v0, v1
goto :goto_b3
.end method
.method public static getArrayComponentType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.registers 2
.prologue
.line 280
instance-of v0, p0, Ljava/lang/reflect/GenericArrayType;
if-eqz v0, :cond_b
check-cast p0, Ljava/lang/reflect/GenericArrayType;
.line 281
invoke-interface {p0}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type;
move-result-object v0
.line 282
:goto_a
return-object v0
.line 281
:cond_b
check-cast p0, Ljava/lang/Class;
.line 282
invoke-virtual {p0}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object v0
goto :goto_a
.end method
.method public static getCollectionElementType(Ljava/lang/reflect/Type;Ljava/lang/Class;)Ljava/lang/reflect/Type;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Class",
"<*>;)",
"Ljava/lang/reflect/Type;"
}
.end annotation
.prologue
const/4 v2, 0x0
.line 290
const-class v0, Ljava/util/Collection;
invoke-static {p0, p1, v0}, Lcom/google/gson/internal/$Gson$Types;->getSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type;
move-result-object v0
.line 292
instance-of v1, v0, Ljava/lang/reflect/WildcardType;
if-eqz v1, :cond_13
.line 293
check-cast v0, Ljava/lang/reflect/WildcardType;
invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object v0
aget-object v0, v0, v2
.line 295
:cond_13
instance-of v1, v0, Ljava/lang/reflect/ParameterizedType;
if-eqz v1, :cond_20
.line 296
check-cast v0, Ljava/lang/reflect/ParameterizedType;
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v0
aget-object v0, v0, v2
.line 298
:goto_1f
return-object v0
:cond_20
const-class v0, Ljava/lang/Object;
goto :goto_1f
.end method
.method static getGenericSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Class",
"<*>;",
"Ljava/lang/Class",
"<*>;)",
"Ljava/lang/reflect/Type;"
}
.end annotation
.prologue
.line 229
if-ne p2, p1, :cond_3
.line 259
:goto_2
return-object p0
.line 234
:cond_3
invoke-virtual {p2}, Ljava/lang/Class;->isInterface()Z
move-result v0
if-eqz v0, :cond_34
.line 235
invoke-virtual {p1}, Ljava/lang/Class;->getInterfaces()[Ljava/lang/Class;
move-result-object v1
.line 236
const/4 v0, 0x0
array-length v2, v1
:goto_f
if-ge v0, v2, :cond_34
.line 237
aget-object v3, v1, v0
if-ne v3, p2, :cond_1c
.line 238
invoke-virtual {p1}, Ljava/lang/Class;->getGenericInterfaces()[Ljava/lang/reflect/Type;
move-result-object v1
aget-object p0, v1, v0
goto :goto_2
.line 239
:cond_1c
aget-object v3, v1, v0
invoke-virtual {p2, v3}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v3
if-eqz v3, :cond_31
.line 240
invoke-virtual {p1}, Ljava/lang/Class;->getGenericInterfaces()[Ljava/lang/reflect/Type;
move-result-object v2
aget-object v2, v2, v0
aget-object v0, v1, v0
invoke-static {v2, v0, p2}, Lcom/google/gson/internal/$Gson$Types;->getGenericSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type;
move-result-object p0
goto :goto_2
.line 236
:cond_31
add-int/lit8 v0, v0, 0x1
goto :goto_f
.line 246
:cond_34
invoke-virtual {p1}, Ljava/lang/Class;->isInterface()Z
move-result v0
if-nez v0, :cond_5a
.line 247
:goto_3a
const-class v0, Ljava/lang/Object;
if-eq p1, v0, :cond_5a
.line 248
invoke-virtual {p1}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object v0
.line 249
if-ne v0, p2, :cond_49
.line 250
invoke-virtual {p1}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;
move-result-object p0
goto :goto_2
.line 251
:cond_49
invoke-virtual {p2, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v1
if-eqz v1, :cond_58
.line 252
invoke-virtual {p1}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;
move-result-object v1
invoke-static {v1, v0, p2}, Lcom/google/gson/internal/$Gson$Types;->getGenericSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type;
move-result-object p0
goto :goto_2
:cond_58
move-object p1, v0
.line 255
goto :goto_3a
:cond_5a
move-object p0, p2
.line 259
goto :goto_2
.end method
.method public static getMapKeyAndValueTypes(Ljava/lang/reflect/Type;Ljava/lang/Class;)[Ljava/lang/reflect/Type;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Class",
"<*>;)[",
"Ljava/lang/reflect/Type;"
}
.end annotation
.prologue
const/4 v4, 0x2
const/4 v3, 0x1
const/4 v2, 0x0
.line 311
const-class v0, Ljava/util/Properties;
if-ne p0, v0, :cond_12
.line 312
new-array v0, v4, [Ljava/lang/reflect/Type;
const-class v1, Ljava/lang/String;
aput-object v1, v0, v2
const-class v1, Ljava/lang/String;
aput-object v1, v0, v3
.line 321
:goto_11
return-object v0
.line 315
:cond_12
const-class v0, Ljava/util/Map;
invoke-static {p0, p1, v0}, Lcom/google/gson/internal/$Gson$Types;->getSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type;
move-result-object v0
.line 317
instance-of v1, v0, Ljava/lang/reflect/ParameterizedType;
if-eqz v1, :cond_23
.line 318
check-cast v0, Ljava/lang/reflect/ParameterizedType;
.line 319
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v0
goto :goto_11
.line 321
:cond_23
new-array v0, v4, [Ljava/lang/reflect/Type;
const-class v1, Ljava/lang/Object;
aput-object v1, v0, v2
const-class v1, Ljava/lang/Object;
aput-object v1, v0, v3
goto :goto_11
.end method
.method public static getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/Type;",
")",
"Ljava/lang/Class",
"<*>;"
}
.end annotation
.prologue
const/4 v1, 0x0
.line 120
instance-of v0, p0, Ljava/lang/Class;
if-eqz v0, :cond_8
.line 122
check-cast p0, Ljava/lang/Class;
.line 144
:goto_7
return-object p0
.line 124
:cond_8
instance-of v0, p0, Ljava/lang/reflect/ParameterizedType;
if-eqz v0, :cond_1b
.line 125
check-cast p0, Ljava/lang/reflect/ParameterizedType;
.line 130
invoke-interface {p0}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v0
.line 131
instance-of v1, v0, Ljava/lang/Class;
invoke-static {v1}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V
.line 132
check-cast v0, Ljava/lang/Class;
move-object p0, v0
goto :goto_7
.line 134
:cond_1b
instance-of v0, p0, Ljava/lang/reflect/GenericArrayType;
if-eqz v0, :cond_32
.line 135
check-cast p0, Ljava/lang/reflect/GenericArrayType;
invoke-interface {p0}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type;
move-result-object v0
.line 136
invoke-static {v0}, Lcom/google/gson/internal/$Gson$Types;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object v0
invoke-static {v0, v1}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;I)Ljava/lang/Object;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p0
goto :goto_7
.line 138
:cond_32
instance-of v0, p0, Ljava/lang/reflect/TypeVariable;
if-eqz v0, :cond_39
.line 141
const-class p0, Ljava/lang/Object;
goto :goto_7
.line 143
:cond_39
instance-of v0, p0, Ljava/lang/reflect/WildcardType;
if-eqz v0, :cond_4a
.line 144
check-cast p0, Ljava/lang/reflect/WildcardType;
invoke-interface {p0}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object v0
aget-object v0, v0, v1
invoke-static {v0}, Lcom/google/gson/internal/$Gson$Types;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object p0
goto :goto_7
.line 147
:cond_4a
if-nez p0, :cond_71
const-string v0, "null"
.line 148
:goto_4e
new-instance v1, Ljava/lang/IllegalArgumentException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Expected a Class, ParameterizedType, or GenericArrayType, but <"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, "> is of type "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v1
.line 147
:cond_71
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
goto :goto_4e
.end method
.method static getSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Class",
"<*>;",
"Ljava/lang/Class",
"<*>;)",
"Ljava/lang/reflect/Type;"
}
.end annotation
.prologue
.line 270
invoke-virtual {p2, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
invoke-static {v0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V
.line 272
invoke-static {p0, p1, p2}, Lcom/google/gson/internal/$Gson$Types;->getGenericSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type;
move-result-object v0
.line 271
invoke-static {p0, p1, v0}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method static hashCodeOrZero(Ljava/lang/Object;)I
.registers 2
.prologue
.line 216
if-eqz p0, :cond_7
invoke-virtual {p0}, Ljava/lang/Object;->hashCode()I
move-result v0
:goto_6
return v0
:cond_7
const/4 v0, 0x0
goto :goto_6
.end method
.method private static indexOf([Ljava/lang/Object;Ljava/lang/Object;)I
.registers 4
.prologue
.line 414
const/4 v0, 0x0
:goto_1
array-length v1, p0
if-ge v0, v1, :cond_10
.line 415
aget-object v1, p0, v0
invoke-virtual {p1, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_d
.line 416
return v0
.line 414
:cond_d
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 419
:cond_10
new-instance v0, Ljava/util/NoSuchElementException;
invoke-direct {v0}, Ljava/util/NoSuchElementException;-><init>()V
throw v0
.end method
.method public static varargs newParameterizedTypeWithOwner(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/ParameterizedType;
.registers 4
.prologue
.line 58
new-instance v0, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;
invoke-direct {v0, p0, p1, p2}, Lcom/google/gson/internal/$Gson$Types$ParameterizedTypeImpl;-><init>(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)V
return-object v0
.end method
.method public static resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.registers 13
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Class",
"<*>;",
"Ljava/lang/reflect/Type;",
")",
"Ljava/lang/reflect/Type;"
}
.end annotation
.prologue
const/4 v2, 0x1
const/4 v3, 0x0
.line 327
move-object v0, p2
:goto_3
instance-of v1, v0, Ljava/lang/reflect/TypeVariable;
if-eqz v1, :cond_13
.line 328
check-cast v0, Ljava/lang/reflect/TypeVariable;
.line 329
invoke-static {p0, p1, v0}, Lcom/google/gson/internal/$Gson$Types;->resolveTypeVariable(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/TypeVariable;)Ljava/lang/reflect/Type;
move-result-object p2
.line 330
if-ne p2, v0, :cond_11
move-object v0, p2
.line 391
:cond_10
:goto_10
return-object v0
:cond_11
move-object v0, p2
.line 334
goto :goto_3
:cond_13
instance-of v1, v0, Ljava/lang/Class;
if-eqz v1, :cond_31
move-object v1, v0
check-cast v1, Ljava/lang/Class;
invoke-virtual {v1}, Ljava/lang/Class;->isArray()Z
move-result v1
if-eqz v1, :cond_31
.line 335
check-cast v0, Ljava/lang/Class;
.line 336
invoke-virtual {v0}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object v1
.line 337
invoke-static {p0, p1, v1}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v2
.line 338
if-eq v1, v2, :cond_10
.line 340
invoke-static {v2}, Lcom/google/gson/internal/$Gson$Types;->arrayOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/GenericArrayType;
move-result-object v0
goto :goto_10
.line 342
:cond_31
instance-of v1, v0, Ljava/lang/reflect/GenericArrayType;
if-eqz v1, :cond_46
.line 343
check-cast v0, Ljava/lang/reflect/GenericArrayType;
.line 344
invoke-interface {v0}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type;
move-result-object v1
.line 345
invoke-static {p0, p1, v1}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v2
.line 346
if-eq v1, v2, :cond_10
.line 348
invoke-static {v2}, Lcom/google/gson/internal/$Gson$Types;->arrayOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/GenericArrayType;
move-result-object v0
goto :goto_10
.line 350
:cond_46
instance-of v1, v0, Ljava/lang/reflect/ParameterizedType;
if-eqz v1, :cond_87
.line 351
check-cast v0, Ljava/lang/reflect/ParameterizedType;
.line 352
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object v1
.line 353
invoke-static {p0, p1, v1}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v5
.line 354
if-eq v5, v1, :cond_7a
move v1, v2
.line 356
:goto_57
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v4
.line 357
array-length v6, v4
move v9, v3
move v3, v1
move-object v1, v4
move v4, v9
:goto_60
if-ge v4, v6, :cond_7c
.line 358
aget-object v7, v1, v4
invoke-static {p0, p1, v7}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v7
.line 359
aget-object v8, v1, v4
if-eq v7, v8, :cond_77
.line 360
if-nez v3, :cond_75
.line 361
invoke-virtual {v1}, [Ljava/lang/reflect/Type;->clone()Ljava/lang/Object;
move-result-object v1
check-cast v1, [Ljava/lang/reflect/Type;
move v3, v2
.line 364
:cond_75
aput-object v7, v1, v4
.line 357
:cond_77
add-int/lit8 v4, v4, 0x1
goto :goto_60
:cond_7a
move v1, v3
.line 354
goto :goto_57
.line 368
:cond_7c
if-eqz v3, :cond_10
.line 369
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v0
invoke-static {v5, v0, v1}, Lcom/google/gson/internal/$Gson$Types;->newParameterizedTypeWithOwner(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/ParameterizedType;
move-result-object v0
goto :goto_10
.line 372
:cond_87
instance-of v1, v0, Ljava/lang/reflect/WildcardType;
if-eqz v1, :cond_10
.line 373
check-cast v0, Ljava/lang/reflect/WildcardType;
.line 374
invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type;
move-result-object v1
.line 375
invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object v4
.line 377
array-length v5, v1
if-ne v5, v2, :cond_a8
.line 378
aget-object v2, v1, v3
invoke-static {p0, p1, v2}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v2
.line 379
aget-object v1, v1, v3
if-eq v2, v1, :cond_10
.line 380
invoke-static {v2}, Lcom/google/gson/internal/$Gson$Types;->supertypeOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/WildcardType;
move-result-object v0
goto/16 :goto_10
.line 382
:cond_a8
array-length v1, v4
if-ne v1, v2, :cond_10
.line 383
aget-object v1, v4, v3
invoke-static {p0, p1, v1}, Lcom/google/gson/internal/$Gson$Types;->resolve(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v1
.line 384
aget-object v2, v4, v3
if-eq v1, v2, :cond_10
.line 385
invoke-static {v1}, Lcom/google/gson/internal/$Gson$Types;->subtypeOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/WildcardType;
move-result-object v0
goto/16 :goto_10
.end method
.method static resolveTypeVariable(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/reflect/TypeVariable;)Ljava/lang/reflect/Type;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Class",
"<*>;",
"Ljava/lang/reflect/TypeVariable",
"<*>;)",
"Ljava/lang/reflect/Type;"
}
.end annotation
.prologue
.line 397
invoke-static {p2}, Lcom/google/gson/internal/$Gson$Types;->declaringClassOf(Ljava/lang/reflect/TypeVariable;)Ljava/lang/Class;
move-result-object v1
.line 400
if-nez v1, :cond_7
.line 410
:cond_6
:goto_6
return-object p2
.line 404
:cond_7
invoke-static {p0, p1, v1}, Lcom/google/gson/internal/$Gson$Types;->getGenericSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type;
move-result-object v0
.line 405
instance-of v2, v0, Ljava/lang/reflect/ParameterizedType;
if-eqz v2, :cond_6
.line 406
invoke-virtual {v1}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v1
invoke-static {v1, p2}, Lcom/google/gson/internal/$Gson$Types;->indexOf([Ljava/lang/Object;Ljava/lang/Object;)I
move-result v1
.line 407
check-cast v0, Ljava/lang/reflect/ParameterizedType;
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v0
aget-object p2, v0, v1
goto :goto_6
.end method
.method public static subtypeOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/WildcardType;
.registers 4
.prologue
.line 78
new-instance v0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;
const/4 v1, 0x1
new-array v1, v1, [Ljava/lang/reflect/Type;
const/4 v2, 0x0
aput-object p0, v1, v2
sget-object v2, Lcom/google/gson/internal/$Gson$Types;->EMPTY_TYPE_ARRAY:[Ljava/lang/reflect/Type;
invoke-direct {v0, v1, v2}, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;-><init>([Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)V
return-object v0
.end method
.method public static supertypeOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/WildcardType;
.registers 6
.prologue
const/4 v4, 0x1
const/4 v3, 0x0
.line 87
new-instance v0, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;
new-array v1, v4, [Ljava/lang/reflect/Type;
const-class v2, Ljava/lang/Object;
aput-object v2, v1, v3
new-array v2, v4, [Ljava/lang/reflect/Type;
aput-object p0, v2, v3
invoke-direct {v0, v1, v2}, Lcom/google/gson/internal/$Gson$Types$WildcardTypeImpl;-><init>([Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)V
return-object v0
.end method
.method public static typeToString(Ljava/lang/reflect/Type;)Ljava/lang/String;
.registers 2
.prologue
.line 220
instance-of v0, p0, Ljava/lang/Class;
if-eqz v0, :cond_b
check-cast p0, Ljava/lang/Class;
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
:goto_a
return-object v0
:cond_b
invoke-virtual {p0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
goto :goto_a
.end method