c.smali
.class public final Lcom/alibaba/fastjson/util/c;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Comparable;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Ljava/lang/Comparable<",
"Lcom/alibaba/fastjson/util/c;",
">;"
}
.end annotation
# instance fields
.field public final a:Ljava/lang/String;
.field public final b:Ljava/lang/reflect/Method;
.field public final c:Ljava/lang/reflect/Field;
.field public d:I
.field public final e:Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.end field
.field public final f:Ljava/lang/reflect/Type;
.field public final g:Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.end field
.field public final h:Z
.field public final i:I
.field public final j:I
.field public final k:Ljava/lang/String;
.field public final l:Lcom/alibaba/fastjson/annotation/b;
.field public final m:Lcom/alibaba/fastjson/annotation/b;
.field public final n:Z
.field public final o:[C
.field public final p:Z
.field public final q:Z
.field public final r:Ljava/lang/String;
.field public final s:[Ljava/lang/String;
# direct methods
.method public constructor <init>(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/reflect/Type;Ljava/lang/reflect/Field;II)V
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/reflect/Type;",
"Ljava/lang/reflect/Field;",
"III)V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lcom/alibaba/fastjson/util/c;->a:Ljava/lang/String;
.line 3
iput-object p2, p0, Lcom/alibaba/fastjson/util/c;->g:Ljava/lang/Class;
.line 4
iput-object p3, p0, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
.line 5
iput-object p4, p0, Lcom/alibaba/fastjson/util/c;->f:Ljava/lang/reflect/Type;
const/4 p1, 0x0
.line 6
iput-object p1, p0, Lcom/alibaba/fastjson/util/c;->b:Ljava/lang/reflect/Method;
.line 7
iput-object p5, p0, Lcom/alibaba/fastjson/util/c;->c:Ljava/lang/reflect/Field;
.line 8
iput p6, p0, Lcom/alibaba/fastjson/util/c;->d:I
.line 9
iput p7, p0, Lcom/alibaba/fastjson/util/c;->i:I
const/4 p2, 0x0
.line 10
iput p2, p0, Lcom/alibaba/fastjson/util/c;->j:I
.line 11
invoke-virtual {p3}, Ljava/lang/Class;->isEnum()Z
move-result p3
iput-boolean p3, p0, Lcom/alibaba/fastjson/util/c;->p:Z
if-eqz p5, :cond_2a
.line 12
invoke-virtual {p5}, Ljava/lang/reflect/Field;->getModifiers()I
move-result p3
.line 13
invoke-static {p3}, Ljava/lang/reflect/Modifier;->isTransient(I)Z
move-result p3
iput-boolean p3, p0, Lcom/alibaba/fastjson/util/c;->n:Z
goto :goto_2c
.line 14
:cond_2a
iput-boolean p2, p0, Lcom/alibaba/fastjson/util/c;->n:Z
.line 15
:goto_2c
invoke-virtual {p0}, Lcom/alibaba/fastjson/util/c;->c()[C
move-result-object p3
iput-object p3, p0, Lcom/alibaba/fastjson/util/c;->o:[C
if-eqz p5, :cond_37
.line 16
invoke-static {p5}, Lcom/alibaba/fastjson/util/j;->D(Ljava/lang/reflect/AccessibleObject;)V
:cond_37
const-string p3, ""
.line 17
iput-object p3, p0, Lcom/alibaba/fastjson/util/c;->k:Ljava/lang/String;
.line 18
iput-object p1, p0, Lcom/alibaba/fastjson/util/c;->l:Lcom/alibaba/fastjson/annotation/b;
.line 19
iput-object p1, p0, Lcom/alibaba/fastjson/util/c;->m:Lcom/alibaba/fastjson/annotation/b;
.line 20
iput-boolean p2, p0, Lcom/alibaba/fastjson/util/c;->h:Z
.line 21
iput-boolean p2, p0, Lcom/alibaba/fastjson/util/c;->q:Z
.line 22
iput-object p1, p0, Lcom/alibaba/fastjson/util/c;->r:Ljava/lang/String;
new-array p1, p2, [Ljava/lang/String;
.line 23
iput-object p1, p0, Lcom/alibaba/fastjson/util/c;->s:[Ljava/lang/String;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Ljava/lang/reflect/Method;Ljava/lang/reflect/Field;Ljava/lang/Class;Ljava/lang/reflect/Type;IIILcom/alibaba/fastjson/annotation/b;Lcom/alibaba/fastjson/annotation/b;Ljava/lang/String;)V
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/lang/reflect/Method;",
"Ljava/lang/reflect/Field;",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/reflect/Type;",
"III",
"Lcom/alibaba/fastjson/annotation/b;",
"Lcom/alibaba/fastjson/annotation/b;",
"Ljava/lang/String;",
")V"
}
.end annotation
.line 24
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
.line 25
iput v0, p0, Lcom/alibaba/fastjson/util/c;->d:I
if-eqz p3, :cond_13
.line 26
invoke-virtual {p3}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
move-result-object v1
.line 27
invoke-virtual {v1, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_13
move-object p1, v1
.line 28
:cond_13
iput-object p1, p0, Lcom/alibaba/fastjson/util/c;->a:Ljava/lang/String;
.line 29
iput-object p2, p0, Lcom/alibaba/fastjson/util/c;->b:Ljava/lang/reflect/Method;
.line 30
iput-object p3, p0, Lcom/alibaba/fastjson/util/c;->c:Ljava/lang/reflect/Field;
.line 31
iput p6, p0, Lcom/alibaba/fastjson/util/c;->d:I
.line 32
iput p7, p0, Lcom/alibaba/fastjson/util/c;->i:I
.line 33
iput p8, p0, Lcom/alibaba/fastjson/util/c;->j:I
.line 34
iput-object p9, p0, Lcom/alibaba/fastjson/util/c;->l:Lcom/alibaba/fastjson/annotation/b;
.line 35
iput-object p10, p0, Lcom/alibaba/fastjson/util/c;->m:Lcom/alibaba/fastjson/annotation/b;
const/4 p1, 0x1
if-eqz p3, :cond_60
.line 36
invoke-virtual {p3}, Ljava/lang/reflect/Field;->getModifiers()I
move-result p6
and-int/lit8 p7, p6, 0x1
.line 37
invoke-static {p6}, Ljava/lang/reflect/Modifier;->isTransient(I)Z
move-result p6
if-nez p6, :cond_5c
.line 38
sget-boolean p6, Lcom/alibaba/fastjson/util/j;->a:Z
if-nez p2, :cond_37
goto :goto_56
.line 39
:cond_37
sget-boolean p6, Lcom/alibaba/fastjson/util/j;->j:Z
if-nez p6, :cond_4a
:try_start_3b
const-string p6, "java.beans.Transient"
.line 40
invoke-static {p6}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object p6
sput-object p6, Lcom/alibaba/fastjson/util/j;->k:Ljava/lang/Class;
:try_end_43
.catch Ljava/lang/Exception; {:try_start_3b .. :try_end_43} :catch_48
.catchall {:try_start_3b .. :try_end_43} :catchall_44
goto :goto_48
:catchall_44
move-exception p2
.line 41
sput-boolean p1, Lcom/alibaba/fastjson/util/j;->j:Z
throw p2
:catch_48
:goto_48
sput-boolean p1, Lcom/alibaba/fastjson/util/j;->j:Z
.line 42
:cond_4a
sget-object p6, Lcom/alibaba/fastjson/util/j;->k:Ljava/lang/Class;
if-eqz p6, :cond_56
.line 43
invoke-virtual {p2, p6}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object p6
if-eqz p6, :cond_56
const/4 p6, 0x1
goto :goto_57
:cond_56
:goto_56
const/4 p6, 0x0
:goto_57
if-eqz p6, :cond_5a
goto :goto_5c
:cond_5a
const/4 p6, 0x0
goto :goto_5d
:cond_5c
:goto_5c
const/4 p6, 0x1
.line 44
:goto_5d
iput-boolean p6, p0, Lcom/alibaba/fastjson/util/c;->n:Z
goto :goto_62
.line 45
:cond_60
iput-boolean v0, p0, Lcom/alibaba/fastjson/util/c;->n:Z
:goto_62
if-eqz p11, :cond_6d
.line 46
invoke-virtual {p11}, Ljava/lang/String;->length()I
move-result p6
if-lez p6, :cond_6d
.line 47
iput-object p11, p0, Lcom/alibaba/fastjson/util/c;->k:Ljava/lang/String;
goto :goto_71
:cond_6d
const-string p6, ""
.line 48
iput-object p6, p0, Lcom/alibaba/fastjson/util/c;->k:Ljava/lang/String;
.line 49
:goto_71
invoke-virtual {p0}, Lcom/alibaba/fastjson/util/c;->d()Lcom/alibaba/fastjson/annotation/b;
move-result-object p6
const/4 p7, 0x0
if-eqz p6, :cond_92
.line 50
invoke-interface {p6}, Lcom/alibaba/fastjson/annotation/b;->format()Ljava/lang/String;
move-result-object p8
.line 51
invoke-virtual {p8}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object p9
invoke-virtual {p9}, Ljava/lang/String;->length()I
move-result p9
if-nez p9, :cond_87
move-object p8, p7
.line 52
:cond_87
invoke-interface {p6}, Lcom/alibaba/fastjson/annotation/b;->jsonDirect()Z
move-result p9
.line 53
invoke-interface {p6}, Lcom/alibaba/fastjson/annotation/b;->alternateNames()[Ljava/lang/String;
move-result-object p6
iput-object p6, p0, Lcom/alibaba/fastjson/util/c;->s:[Ljava/lang/String;
goto :goto_98
:cond_92
new-array p6, v0, [Ljava/lang/String;
.line 54
iput-object p6, p0, Lcom/alibaba/fastjson/util/c;->s:[Ljava/lang/String;
move-object p8, p7
const/4 p9, 0x0
.line 55
:goto_98
iput-object p8, p0, Lcom/alibaba/fastjson/util/c;->r:Ljava/lang/String;
.line 56
invoke-virtual {p0}, Lcom/alibaba/fastjson/util/c;->c()[C
move-result-object p6
iput-object p6, p0, Lcom/alibaba/fastjson/util/c;->o:[C
if-eqz p2, :cond_a5
.line 57
invoke-static {p2}, Lcom/alibaba/fastjson/util/j;->D(Ljava/lang/reflect/AccessibleObject;)V
:cond_a5
if-eqz p3, :cond_aa
.line 58
invoke-static {p3}, Lcom/alibaba/fastjson/util/j;->D(Ljava/lang/reflect/AccessibleObject;)V
:cond_aa
if-eqz p2, :cond_cd
.line 59
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;
move-result-object p3
array-length p6, p3
if-ne p6, p1, :cond_bd
.line 60
aget-object p3, p3, v0
.line 61
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
move-result-object p6
aget-object p6, p6, v0
const/4 p8, 0x0
goto :goto_c6
.line 62
:cond_bd
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getReturnType()Ljava/lang/Class;
move-result-object p3
.line 63
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getGenericReturnType()Ljava/lang/reflect/Type;
move-result-object p6
const/4 p8, 0x1
.line 64
:goto_c6
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getDeclaringClass()Ljava/lang/Class;
move-result-object p2
iput-object p2, p0, Lcom/alibaba/fastjson/util/c;->g:Ljava/lang/Class;
goto :goto_e4
.line 65
:cond_cd
invoke-virtual {p3}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;
move-result-object p2
.line 66
invoke-virtual {p3}, Ljava/lang/reflect/Field;->getGenericType()Ljava/lang/reflect/Type;
move-result-object p6
.line 67
invoke-virtual {p3}, Ljava/lang/reflect/Field;->getDeclaringClass()Ljava/lang/Class;
move-result-object p8
iput-object p8, p0, Lcom/alibaba/fastjson/util/c;->g:Ljava/lang/Class;
.line 68
invoke-virtual {p3}, Ljava/lang/reflect/Field;->getModifiers()I
move-result p3
invoke-static {p3}, Ljava/lang/reflect/Modifier;->isFinal(I)Z
move-result p8
move-object p3, p2
.line 69
:goto_e4
iput-boolean p8, p0, Lcom/alibaba/fastjson/util/c;->h:Z
if-eqz p9, :cond_ee
.line 70
const-class p2, Ljava/lang/String;
if-ne p3, p2, :cond_ee
const/4 p2, 0x1
goto :goto_ef
:cond_ee
const/4 p2, 0x0
:goto_ef
iput-boolean p2, p0, Lcom/alibaba/fastjson/util/c;->q:Z
if-eqz p4, :cond_166
.line 71
const-class p2, Ljava/lang/Object;
if-ne p3, p2, :cond_166
instance-of p2, p6, Ljava/lang/reflect/TypeVariable;
if-eqz p2, :cond_166
.line 72
move-object p2, p6
check-cast p2, Ljava/lang/reflect/TypeVariable;
.line 73
invoke-interface {p2}, Ljava/lang/reflect/TypeVariable;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;
move-result-object p8
.line 74
invoke-virtual {p4}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;
move-object p9, p4
.line 75
:goto_106
invoke-virtual {p9}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;
move-result-object p9
if-nez p9, :cond_10d
goto :goto_150
.line 76
:cond_10d
instance-of p10, p9, Ljava/lang/reflect/ParameterizedType;
if-eqz p10, :cond_161
.line 77
move-object p10, p9
check-cast p10, Ljava/lang/reflect/ParameterizedType;
.line 78
invoke-interface {p10}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object p11
.line 79
invoke-virtual {p8, p11}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_134
instance-of v1, p8, Ljava/lang/Class;
if-eqz v1, :cond_132
instance-of v1, p11, Ljava/lang/Class;
if-eqz v1, :cond_132
move-object v1, p8
check-cast v1, Ljava/lang/Class;
check-cast p11, Ljava/lang/Class;
invoke-virtual {v1, p11}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result p11
if-eqz p11, :cond_132
goto :goto_134
:cond_132
const/4 p11, 0x0
goto :goto_135
:cond_134
:goto_134
const/4 p11, 0x1
:goto_135
if-eqz p11, :cond_161
.line 80
invoke-interface {p8}, Ljava/lang/reflect/GenericDeclaration;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object p1
.line 81
invoke-interface {p10}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object p8
.line 82
:goto_13f
array-length p9, p1
if-ge v0, p9, :cond_150
.line 83
aget-object p9, p1, v0
invoke-virtual {p2, p9}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p9
if-eqz p9, :cond_14d
.line 84
aget-object p7, p8, v0
goto :goto_150
:cond_14d
add-int/lit8 v0, v0, 0x1
goto :goto_13f
:cond_150
:goto_150
if-eqz p7, :cond_166
.line 85
invoke-static {p7}, Lcom/alibaba/fastjson/util/j;->r(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object p1
iput-object p1, p0, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
.line 86
iput-object p7, p0, Lcom/alibaba/fastjson/util/c;->f:Ljava/lang/reflect/Type;
.line 87
invoke-virtual {p3}, Ljava/lang/Class;->isEnum()Z
move-result p1
iput-boolean p1, p0, Lcom/alibaba/fastjson/util/c;->p:Z
return-void
.line 88
:cond_161
invoke-static {p9}, Lcom/alibaba/fastjson/util/j;->r(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object p9
goto :goto_106
.line 89
:cond_166
instance-of p1, p6, Ljava/lang/Class;
if-nez p1, :cond_186
if-eqz p5, :cond_16d
goto :goto_16e
:cond_16d
move-object p5, p4
.line 90
:goto_16e
invoke-static {p4, p5, p6}, Lcom/alibaba/fastjson/util/c;->e(Ljava/lang/Class;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p1
if-eq p1, p6, :cond_185
.line 91
instance-of p2, p1, Ljava/lang/reflect/ParameterizedType;
if-eqz p2, :cond_17d
.line 92
invoke-static {p1}, Lcom/alibaba/fastjson/util/j;->r(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object p3
goto :goto_185
.line 93
:cond_17d
instance-of p2, p1, Ljava/lang/Class;
if-eqz p2, :cond_185
.line 94
invoke-static {p1}, Lcom/alibaba/fastjson/util/j;->r(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object p3
:cond_185
:goto_185
move-object p6, p1
.line 95
:cond_186
iput-object p6, p0, Lcom/alibaba/fastjson/util/c;->f:Ljava/lang/reflect/Type;
.line 96
iput-object p3, p0, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
.line 97
invoke-virtual {p3}, Ljava/lang/Class;->isEnum()Z
move-result p1
iput-boolean p1, p0, Lcom/alibaba/fastjson/util/c;->p:Z
return-void
.end method
.method public static e(Ljava/lang/Class;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.registers 13
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/reflect/Type;",
"Ljava/lang/reflect/Type;",
")",
"Ljava/lang/reflect/Type;"
}
.end annotation
if-eqz p0, :cond_e6
if-nez p1, :cond_6
goto/16 :goto_e6
.line 1
:cond_6
instance-of v0, p2, Ljava/lang/reflect/GenericArrayType;
const/4 v1, 0x0
if-eqz v0, :cond_26
.line 2
move-object v0, p2
check-cast v0, Ljava/lang/reflect/GenericArrayType;
.line 3
invoke-interface {v0}, Ljava/lang/reflect/GenericArrayType;->getGenericComponentType()Ljava/lang/reflect/Type;
move-result-object v0
.line 4
invoke-static {p0, p1, v0}, Lcom/alibaba/fastjson/util/c;->e(Ljava/lang/Class;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object p0
if-eq v0, p0, :cond_25
.line 5
invoke-static {p0}, Lcom/alibaba/fastjson/util/j;->r(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object p0
invoke-static {p0, v1}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;I)Ljava/lang/Object;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p0
return-object p0
:cond_25
return-object p2
.line 6
:cond_26
invoke-static {p1}, Lcom/alibaba/fastjson/util/j;->z(Ljava/lang/reflect/Type;)Z
move-result v0
if-nez v0, :cond_2d
return-object p2
.line 7
:cond_2d
instance-of v0, p2, Ljava/lang/reflect/TypeVariable;
if-eqz v0, :cond_72
.line 8
instance-of v0, p1, Ljava/lang/reflect/ParameterizedType;
if-eqz v0, :cond_36
goto :goto_46
.line 9
:cond_36
instance-of v0, p1, Ljava/lang/Class;
if-eqz v0, :cond_46
.line 10
move-object v0, p1
check-cast v0, Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;
move-result-object v0
invoke-static {v0}, Lcom/alibaba/fastjson/util/j;->v(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v0
goto :goto_47
:cond_46
:goto_46
move-object v0, p1
.line 11
:goto_47
check-cast v0, Ljava/lang/reflect/ParameterizedType;
.line 12
invoke-static {v0}, Lcom/alibaba/fastjson/util/j;->r(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object v2
.line 13
move-object v3, p2
check-cast v3, Ljava/lang/reflect/TypeVariable;
.line 14
invoke-virtual {v2}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v2
const/4 v4, 0x0
.line 15
:goto_55
array-length v5, v2
if-ge v4, v5, :cond_72
.line 16
aget-object v5, v2, v4
invoke-interface {v5}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String;
move-result-object v5
invoke-interface {v3}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_6f
.line 17
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object p0
aget-object p0, p0, v4
return-object p0
:cond_6f
add-int/lit8 v4, v4, 0x1
goto :goto_55
.line 18
:cond_72
instance-of v0, p2, Ljava/lang/reflect/ParameterizedType;
if-eqz v0, :cond_e6
.line 19
move-object v0, p2
check-cast v0, Ljava/lang/reflect/ParameterizedType;
.line 20
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v2
.line 21
instance-of v3, p1, Ljava/lang/reflect/ParameterizedType;
const/4 v4, 0x0
if-eqz v3, :cond_89
.line 22
check-cast p1, Ljava/lang/reflect/ParameterizedType;
.line 23
invoke-virtual {p0}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object p0
goto :goto_a2
.line 24
:cond_89
invoke-virtual {p0}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;
move-result-object p1
instance-of p1, p1, Ljava/lang/reflect/ParameterizedType;
if-eqz p1, :cond_a0
.line 25
invoke-virtual {p0}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;
move-result-object p1
check-cast p1, Ljava/lang/reflect/ParameterizedType;
.line 26
invoke-virtual {p0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object p0
goto :goto_a2
:cond_a0
move-object p0, v4
move-object p1, p0
:goto_a2
const/4 v3, 0x0
const/4 v5, 0x0
.line 27
:goto_a4
array-length v6, v2
if-ge v3, v6, :cond_d6
if-eqz p1, :cond_d6
.line 28
aget-object v6, v2, v3
.line 29
instance-of v7, v6, Ljava/lang/reflect/TypeVariable;
if-eqz v7, :cond_d3
.line 30
check-cast v6, Ljava/lang/reflect/TypeVariable;
const/4 v7, 0x0
.line 31
:goto_b2
array-length v8, p0
if-ge v7, v8, :cond_d3
.line 32
aget-object v8, p0, v7
invoke-interface {v8}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String;
move-result-object v8
invoke-interface {v6}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String;
move-result-object v9
invoke-virtual {v8, v9}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v8
if-eqz v8, :cond_d0
if-nez v4, :cond_cb
.line 33
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v4
.line 34
:cond_cb
aget-object v5, v4, v7
aput-object v5, v2, v3
const/4 v5, 0x1
:cond_d0
add-int/lit8 v7, v7, 0x1
goto :goto_b2
:cond_d3
add-int/lit8 v3, v3, 0x1
goto :goto_a4
:cond_d6
if-eqz v5, :cond_e6
.line 35
new-instance p0, Lcom/alibaba/fastjson/util/h;
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object p1
.line 36
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object p2
invoke-direct {p0, v2, p1, p2}, Lcom/alibaba/fastjson/util/h;-><init>([Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
return-object p0
:cond_e6
:goto_e6
return-object p2
.end method
# virtual methods
.method public final b(Lcom/alibaba/fastjson/util/c;)I
.registers 8
.line 1
iget v0, p0, Lcom/alibaba/fastjson/util/c;->d:I
iget v1, p1, Lcom/alibaba/fastjson/util/c;->d:I
const/4 v2, -0x1
if-ge v0, v1, :cond_8
return v2
:cond_8
const/4 v3, 0x1
if-le v0, v1, :cond_c
return v3
.line 2
:cond_c
iget-object v0, p0, Lcom/alibaba/fastjson/util/c;->a:Ljava/lang/String;
iget-object v1, p1, Lcom/alibaba/fastjson/util/c;->a:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/String;->compareTo(Ljava/lang/String;)I
move-result v0
if-eqz v0, :cond_17
return v0
.line 3
:cond_17
iget-object v0, p0, Lcom/alibaba/fastjson/util/c;->b:Ljava/lang/reflect/Method;
const/4 v1, 0x0
if-eqz v0, :cond_21
.line 4
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getDeclaringClass()Ljava/lang/Class;
move-result-object v0
goto :goto_2b
.line 5
:cond_21
iget-object v0, p0, Lcom/alibaba/fastjson/util/c;->c:Ljava/lang/reflect/Field;
if-eqz v0, :cond_2a
.line 6
invoke-virtual {v0}, Ljava/lang/reflect/Field;->getDeclaringClass()Ljava/lang/Class;
move-result-object v0
goto :goto_2b
:cond_2a
move-object v0, v1
.line 7
:goto_2b
iget-object v4, p1, Lcom/alibaba/fastjson/util/c;->b:Ljava/lang/reflect/Method;
if-eqz v4, :cond_34
.line 8
invoke-virtual {v4}, Ljava/lang/reflect/Method;->getDeclaringClass()Ljava/lang/Class;
move-result-object v1
goto :goto_3c
.line 9
:cond_34
iget-object v4, p1, Lcom/alibaba/fastjson/util/c;->c:Ljava/lang/reflect/Field;
if-eqz v4, :cond_3c
.line 10
invoke-virtual {v4}, Ljava/lang/reflect/Field;->getDeclaringClass()Ljava/lang/Class;
move-result-object v1
:cond_3c
:goto_3c
if-eqz v0, :cond_50
if-eqz v1, :cond_50
if-eq v0, v1, :cond_50
.line 11
invoke-virtual {v0, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v4
if-eqz v4, :cond_49
return v2
.line 12
:cond_49
invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_50
return v3
.line 13
:cond_50
iget-object v0, p0, Lcom/alibaba/fastjson/util/c;->c:Ljava/lang/reflect/Field;
const/4 v1, 0x0
if-eqz v0, :cond_5f
invoke-virtual {v0}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;
move-result-object v0
iget-object v4, p0, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
if-ne v0, v4, :cond_5f
const/4 v0, 0x1
goto :goto_60
:cond_5f
const/4 v0, 0x0
.line 14
:goto_60
iget-object v4, p1, Lcom/alibaba/fastjson/util/c;->c:Ljava/lang/reflect/Field;
if-eqz v4, :cond_6d
invoke-virtual {v4}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;
move-result-object v4
iget-object v5, p1, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
if-ne v4, v5, :cond_6d
const/4 v1, 0x1
:cond_6d
if-eqz v0, :cond_72
if-nez v1, :cond_72
return v3
:cond_72
if-eqz v1, :cond_77
if-nez v0, :cond_77
return v2
.line 15
:cond_77
iget-object v0, p1, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->isPrimitive()Z
move-result v0
if-eqz v0, :cond_88
iget-object v0, p0, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->isPrimitive()Z
move-result v0
if-nez v0, :cond_88
return v3
.line 16
:cond_88
iget-object v0, p0, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->isPrimitive()Z
move-result v0
if-eqz v0, :cond_99
iget-object v0, p1, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->isPrimitive()Z
move-result v0
if-nez v0, :cond_99
return v2
.line 17
:cond_99
iget-object v0, p1, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
const-string v1, "java."
invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_b4
iget-object v0, p0, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_b4
return v3
.line 18
:cond_b4
iget-object v0, p0, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_cd
iget-object v0, p1, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_cd
return v2
.line 19
:cond_cd
iget-object v0, p0, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
iget-object p1, p1, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
invoke-virtual {p1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/lang/String;->compareTo(Ljava/lang/String;)I
move-result p1
return p1
.end method
.method public final c()[C
.registers 7
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/util/c;->a:Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v0
add-int/lit8 v1, v0, 0x3
.line 2
new-array v1, v1, [C
.line 3
iget-object v2, p0, Lcom/alibaba/fastjson/util/c;->a:Ljava/lang/String;
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v3
const/4 v4, 0x0
const/4 v5, 0x1
invoke-virtual {v2, v4, v3, v1, v5}, Ljava/lang/String;->getChars(II[CI)V
const/16 v2, 0x22
.line 4
aput-char v2, v1, v4
add-int/lit8 v3, v0, 0x1
.line 5
aput-char v2, v1, v3
add-int/lit8 v0, v0, 0x2
const/16 v2, 0x3a
.line 6
aput-char v2, v1, v0
return-object v1
.end method
.method public final bridge synthetic compareTo(Ljava/lang/Object;)I
.registers 2
check-cast p1, Lcom/alibaba/fastjson/util/c;
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/util/c;->b(Lcom/alibaba/fastjson/util/c;)I
move-result p1
return p1
.end method
.method public final d()Lcom/alibaba/fastjson/annotation/b;
.registers 2
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/util/c;->l:Lcom/alibaba/fastjson/annotation/b;
if-eqz v0, :cond_5
return-object v0
.line 2
:cond_5
iget-object v0, p0, Lcom/alibaba/fastjson/util/c;->m:Lcom/alibaba/fastjson/annotation/b;
return-object v0
.end method
.method public final f()Ljava/lang/reflect/Member;
.registers 2
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/util/c;->b:Ljava/lang/reflect/Method;
if-eqz v0, :cond_5
return-object v0
.line 2
:cond_5
iget-object v0, p0, Lcom/alibaba/fastjson/util/c;->c:Ljava/lang/reflect/Field;
return-object v0
.end method
.method public final toString()Ljava/lang/String;
.registers 2
iget-object v0, p0, Lcom/alibaba/fastjson/util/c;->a:Ljava/lang/String;
return-object v0
.end method