x.smali
.class public final Lcom/alibaba/fastjson/parser/deserializer/x;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/alibaba/fastjson/parser/deserializer/r;
# static fields
.field public static final a:Lcom/alibaba/fastjson/parser/deserializer/x;
# direct methods
.method public static constructor <clinit>()V
.registers 1
new-instance v0, Lcom/alibaba/fastjson/parser/deserializer/x;
invoke-direct {v0}, Lcom/alibaba/fastjson/parser/deserializer/x;-><init>()V
sput-object v0, Lcom/alibaba/fastjson/parser/deserializer/x;->a:Lcom/alibaba/fastjson/parser/deserializer/x;
return-void
.end method
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public final b()I
.registers 2
const/4 v0, 0x2
return v0
.end method
.method public final c(Lcom/alibaba/fastjson/parser/a;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/alibaba/fastjson/parser/a;",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Object;",
")TT;"
}
.end annotation
.line 1
iget-object p2, p1, Lcom/alibaba/fastjson/parser/a;->f:Lcom/alibaba/fastjson/parser/c;
.line 2
invoke-interface {p2}, Lcom/alibaba/fastjson/parser/c;->M0()I
move-result p3
const/16 v0, 0x10
if-ne p3, v0, :cond_4a
const/4 p1, 0x4
.line 3
invoke-interface {p2, p1}, Lcom/alibaba/fastjson/parser/c;->C(I)V
.line 4
invoke-interface {p2}, Lcom/alibaba/fastjson/parser/c;->M0()I
move-result p3
const-string v1, "syntax error"
if-ne p3, p1, :cond_44
const/4 p1, 0x2
.line 5
invoke-interface {p2}, Lcom/alibaba/fastjson/parser/c;->x()V
.line 6
invoke-interface {p2}, Lcom/alibaba/fastjson/parser/c;->M0()I
move-result p3
if-ne p3, p1, :cond_3e
.line 7
invoke-interface {p2}, Lcom/alibaba/fastjson/parser/c;->X()J
move-result-wide v2
const/16 p1, 0xd
.line 8
invoke-interface {p2, p1}, Lcom/alibaba/fastjson/parser/c;->C(I)V
.line 9
invoke-interface {p2}, Lcom/alibaba/fastjson/parser/c;->M0()I
move-result p3
if-ne p3, p1, :cond_38
.line 10
invoke-interface {p2, v0}, Lcom/alibaba/fastjson/parser/c;->C(I)V
.line 11
new-instance p1, Ljava/sql/Time;
invoke-direct {p1, v2, v3}, Ljava/sql/Time;-><init>(J)V
return-object p1
.line 12
:cond_38
new-instance p1, Lcom/alibaba/fastjson/d;
invoke-direct {p1, v1}, Lcom/alibaba/fastjson/d;-><init>(Ljava/lang/String;)V
throw p1
.line 13
:cond_3e
new-instance p1, Lcom/alibaba/fastjson/d;
invoke-direct {p1, v1}, Lcom/alibaba/fastjson/d;-><init>(Ljava/lang/String;)V
throw p1
.line 14
:cond_44
new-instance p1, Lcom/alibaba/fastjson/d;
invoke-direct {p1, v1}, Lcom/alibaba/fastjson/d;-><init>(Ljava/lang/String;)V
throw p1
:cond_4a
const/4 p2, 0x0
.line 15
invoke-virtual {p1, p2}, Lcom/alibaba/fastjson/parser/a;->D(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
if-nez p1, :cond_52
return-object p2
.line 16
:cond_52
instance-of p3, p1, Ljava/sql/Time;
if-eqz p3, :cond_57
return-object p1
.line 17
:cond_57
instance-of p3, p1, Ljava/lang/Number;
if-eqz p3, :cond_67
.line 18
new-instance p2, Ljava/sql/Time;
check-cast p1, Ljava/lang/Number;
invoke-virtual {p1}, Ljava/lang/Number;->longValue()J
move-result-wide v0
invoke-direct {p2, v0, v1}, Ljava/sql/Time;-><init>(J)V
return-object p2
.line 19
:cond_67
instance-of p3, p1, Ljava/lang/String;
if-eqz p3, :cond_b7
.line 20
check-cast p1, Ljava/lang/String;
.line 21
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p3
if-nez p3, :cond_74
return-object p2
.line 22
:cond_74
new-instance p2, Lcom/alibaba/fastjson/parser/f;
invoke-direct {p2, p1}, Lcom/alibaba/fastjson/parser/f;-><init>(Ljava/lang/String;)V
const/4 p3, 0x1
.line 23
invoke-virtual {p2, p3}, Lcom/alibaba/fastjson/parser/f;->B1(Z)Z
move-result v0
if-eqz v0, :cond_87
.line 24
iget-object p1, p2, Lcom/alibaba/fastjson/parser/d;->j:Ljava/util/Calendar;
.line 25
invoke-virtual {p1}, Ljava/util/Calendar;->getTimeInMillis()J
move-result-wide v0
goto :goto_ae
:cond_87
const/4 v0, 0x0
const/4 v1, 0x0
.line 26
:goto_89
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v2
if-ge v1, v2, :cond_a0
.line 27
invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C
move-result v2
const/16 v3, 0x30
if-lt v2, v3, :cond_9f
const/16 v3, 0x39
if-le v2, v3, :cond_9c
goto :goto_9f
:cond_9c
add-int/lit8 v1, v1, 0x1
goto :goto_89
:cond_9f
:goto_9f
const/4 p3, 0x0
:cond_a0
if-nez p3, :cond_aa
.line 28
invoke-virtual {p2}, Lcom/alibaba/fastjson/parser/d;->close()V
.line 29
invoke-static {p1}, Ljava/sql/Time;->valueOf(Ljava/lang/String;)Ljava/sql/Time;
move-result-object p1
return-object p1
.line 30
:cond_aa
invoke-static {p1}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v0
.line 31
:goto_ae
invoke-virtual {p2}, Lcom/alibaba/fastjson/parser/d;->close()V
.line 32
new-instance p1, Ljava/sql/Time;
invoke-direct {p1, v0, v1}, Ljava/sql/Time;-><init>(J)V
return-object p1
.line 33
:cond_b7
new-instance p1, Lcom/alibaba/fastjson/d;
const-string p2, "parse error"
invoke-direct {p1, p2}, Lcom/alibaba/fastjson/d;-><init>(Ljava/lang/String;)V
throw p1
.end method