SqlDateDeserializer.smali
.class public Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;
.super Lcom/tradplus/ads/common/serialization/parser/deserializer/AbstractDateDeserializer;
# interfaces
.implements Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
# static fields
.field public static final instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;
.field public static final instance_timestamp:Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;
# instance fields
.field private a:Z
# direct methods
.method static constructor <clinit>()V
.registers 2
new-instance v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;
invoke-direct {v0}, Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;-><init>()V
sput-object v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;
new-instance v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;
const/4 v1, 0x1
invoke-direct {v0, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;-><init>(Z)V
sput-object v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;->instance_timestamp:Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;
return-void
.end method
.method public constructor <init>()V
.registers 2
invoke-direct {p0}, Lcom/tradplus/ads/common/serialization/parser/deserializer/AbstractDateDeserializer;-><init>()V
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;->a:Z
return-void
.end method
.method public constructor <init>(Z)V
.registers 2
invoke-direct {p0}, Lcom/tradplus/ads/common/serialization/parser/deserializer/AbstractDateDeserializer;-><init>()V
const/4 p1, 0x0
iput-boolean p1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;->a:Z
const/4 p1, 0x1
iput-boolean p1, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;->a:Z
return-void
.end method
# virtual methods
.method protected a(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Object;",
"Ljava/lang/Object;",
")TT;"
}
.end annotation
const/4 p2, 0x0
if-nez p4, :cond_4
return-object p2
:cond_4
instance-of p3, p4, Ljava/util/Date;
if-eqz p3, :cond_14
new-instance p1, Ljava/sql/Timestamp;
check-cast p4, Ljava/util/Date;
invoke-virtual {p4}, Ljava/util/Date;->getTime()J
move-result-wide p2
invoke-direct {p1, p2, p3}, Ljava/sql/Timestamp;-><init>(J)V
return-object p1
:cond_14
instance-of p3, p4, Ljava/math/BigDecimal;
if-eqz p3, :cond_24
new-instance p1, Ljava/sql/Timestamp;
check-cast p4, Ljava/math/BigDecimal;
invoke-static {p4}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->longValue(Ljava/math/BigDecimal;)J
move-result-wide p2
invoke-direct {p1, p2, p3}, Ljava/sql/Timestamp;-><init>(J)V
return-object p1
:cond_24
instance-of p3, p4, Ljava/lang/Number;
if-eqz p3, :cond_34
new-instance p1, Ljava/sql/Timestamp;
check-cast p4, Ljava/lang/Number;
invoke-virtual {p4}, Ljava/lang/Number;->longValue()J
move-result-wide p2
invoke-direct {p1, p2, p3}, Ljava/sql/Timestamp;-><init>(J)V
return-object p1
:cond_34
instance-of p3, p4, Ljava/lang/String;
if-eqz p3, :cond_d3
check-cast p4, Ljava/lang/String;
invoke-virtual {p4}, Ljava/lang/String;->length()I
move-result p3
if-nez p3, :cond_41
return-object p2
:cond_41
new-instance p2, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;
invoke-direct {p2, p4}, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;-><init>(Ljava/lang/String;)V
:try_start_46
invoke-virtual {p4}, Ljava/lang/String;->length()I
move-result p3
const/16 v0, 0x13
if-le p3, v0, :cond_9c
const/4 p3, 0x4
invoke-virtual {p4, p3}, Ljava/lang/String;->charAt(I)C
move-result p3
const/16 v1, 0x2d
if-ne p3, v1, :cond_9c
const/4 p3, 0x7
invoke-virtual {p4, p3}, Ljava/lang/String;->charAt(I)C
move-result p3
if-ne p3, v1, :cond_9c
const/16 p3, 0xa
invoke-virtual {p4, p3}, Ljava/lang/String;->charAt(I)C
move-result p3
const/16 v1, 0x20
if-ne p3, v1, :cond_9c
const/16 p3, 0xd
invoke-virtual {p4, p3}, Ljava/lang/String;->charAt(I)C
move-result p3
const/16 v1, 0x3a
if-ne p3, v1, :cond_9c
const/16 p3, 0x10
invoke-virtual {p4, p3}, Ljava/lang/String;->charAt(I)C
move-result p3
if-ne p3, v1, :cond_9c
invoke-virtual {p4, v0}, Ljava/lang/String;->charAt(I)C
move-result p3
const/16 v0, 0x2e
if-ne p3, v0, :cond_9c
invoke-virtual {p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getDateFomartPattern()Ljava/lang/String;
move-result-object p3
invoke-virtual {p3}, Ljava/lang/String;->length()I
move-result v0
invoke-virtual {p4}, Ljava/lang/String;->length()I
move-result v1
if-eq v0, v1, :cond_9c
sget-object v0, Lcom/tradplus/ads/common/serialization/JSON;->DEFFAULT_DATE_FORMAT:Ljava/lang/String;
if-ne p3, v0, :cond_9c
invoke-static {p4}, Ljava/sql/Timestamp;->valueOf(Ljava/lang/String;)Ljava/sql/Timestamp;
move-result-object p1
:try_end_98
.catchall {:try_start_46 .. :try_end_98} :catchall_ce
invoke-virtual {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->close()V
return-object p1
:cond_9c
const/4 p3, 0x0
:try_start_9d
invoke-virtual {p2, p3}, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;->scanISO8601DateIfMatch(Z)Z
move-result p3
if-eqz p3, :cond_ac
invoke-virtual {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->getCalendar()Ljava/util/Calendar;
move-result-object p1
invoke-virtual {p1}, Ljava/util/Calendar;->getTimeInMillis()J
move-result-wide p3
goto :goto_c5
:cond_ac
invoke-virtual {p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getDateFormat()Ljava/text/DateFormat;
move-result-object p1
:try_end_b0
.catchall {:try_start_9d .. :try_end_b0} :catchall_ce
:try_start_b0
invoke-virtual {p1, p4}, Ljava/text/DateFormat;->parse(Ljava/lang/String;)Ljava/util/Date;
move-result-object p1
new-instance p3, Ljava/sql/Timestamp;
invoke-virtual {p1}, Ljava/util/Date;->getTime()J
move-result-wide v0
invoke-direct {p3, v0, v1}, Ljava/sql/Timestamp;-><init>(J)V
:try_end_bd
.catch Ljava/text/ParseException; {:try_start_b0 .. :try_end_bd} :catch_c1
.catchall {:try_start_b0 .. :try_end_bd} :catchall_ce
invoke-virtual {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->close()V
return-object p3
:catch_c1
:try_start_c1
invoke-static {p4}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide p3
:try_end_c5
.catchall {:try_start_c1 .. :try_end_c5} :catchall_ce
:goto_c5
invoke-virtual {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->close()V
new-instance p1, Ljava/sql/Timestamp;
invoke-direct {p1, p3, p4}, Ljava/sql/Timestamp;-><init>(J)V
return-object p1
:catchall_ce
move-exception p1
invoke-virtual {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->close()V
throw p1
:cond_d3
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
const-string p2, "parse error"
invoke-direct {p1, p2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method protected cast(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Object;",
"Ljava/lang/Object;",
")TT;"
}
.end annotation
iget-boolean v0, p0, Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;->a:Z
if-eqz v0, :cond_9
invoke-virtual {p0, p1, p2, p3, p4}, Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;->a(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
:cond_9
const/4 p2, 0x0
if-nez p4, :cond_d
return-object p2
:cond_d
instance-of p3, p4, Ljava/util/Date;
if-eqz p3, :cond_1d
new-instance p1, Ljava/sql/Date;
check-cast p4, Ljava/util/Date;
invoke-virtual {p4}, Ljava/util/Date;->getTime()J
move-result-wide p2
invoke-direct {p1, p2, p3}, Ljava/sql/Date;-><init>(J)V
goto :goto_3c
:cond_1d
instance-of p3, p4, Ljava/math/BigDecimal;
if-eqz p3, :cond_2d
new-instance p1, Ljava/sql/Date;
check-cast p4, Ljava/math/BigDecimal;
invoke-static {p4}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->longValue(Ljava/math/BigDecimal;)J
move-result-wide p2
invoke-direct {p1, p2, p3}, Ljava/sql/Date;-><init>(J)V
goto :goto_3c
:cond_2d
instance-of p3, p4, Ljava/lang/Number;
if-eqz p3, :cond_3d
new-instance p1, Ljava/sql/Date;
check-cast p4, Ljava/lang/Number;
invoke-virtual {p4}, Ljava/lang/Number;->longValue()J
move-result-wide p2
invoke-direct {p1, p2, p3}, Ljava/sql/Date;-><init>(J)V
:goto_3c
return-object p1
:cond_3d
instance-of p3, p4, Ljava/lang/String;
if-eqz p3, :cond_85
check-cast p4, Ljava/lang/String;
invoke-virtual {p4}, Ljava/lang/String;->length()I
move-result p3
if-nez p3, :cond_4a
return-object p2
:cond_4a
new-instance p2, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;
invoke-direct {p2, p4}, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;-><init>(Ljava/lang/String;)V
:try_start_4f
invoke-virtual {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;->scanISO8601DateIfMatch()Z
move-result p3
if-eqz p3, :cond_5e
invoke-virtual {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->getCalendar()Ljava/util/Calendar;
move-result-object p1
invoke-virtual {p1}, Ljava/util/Calendar;->getTimeInMillis()J
move-result-wide p3
goto :goto_77
:cond_5e
invoke-virtual {p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getDateFormat()Ljava/text/DateFormat;
move-result-object p1
:try_end_62
.catchall {:try_start_4f .. :try_end_62} :catchall_80
:try_start_62
invoke-virtual {p1, p4}, Ljava/text/DateFormat;->parse(Ljava/lang/String;)Ljava/util/Date;
move-result-object p1
new-instance p3, Ljava/sql/Date;
invoke-virtual {p1}, Ljava/util/Date;->getTime()J
move-result-wide v0
invoke-direct {p3, v0, v1}, Ljava/sql/Date;-><init>(J)V
:try_end_6f
.catch Ljava/text/ParseException; {:try_start_62 .. :try_end_6f} :catch_73
.catchall {:try_start_62 .. :try_end_6f} :catchall_80
invoke-virtual {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->close()V
return-object p3
:catch_73
:try_start_73
invoke-static {p4}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide p3
:try_end_77
.catchall {:try_start_73 .. :try_end_77} :catchall_80
:goto_77
invoke-virtual {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->close()V
new-instance p1, Ljava/sql/Date;
invoke-direct {p1, p3, p4}, Ljava/sql/Date;-><init>(J)V
return-object p1
:catchall_80
move-exception p1
invoke-virtual {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->close()V
throw p1
:cond_85
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string p3, "parse error : "
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public getFastMatchToken()I
.registers 2
const/4 v0, 0x2
return v0
.end method