JodaCodec.smali
.class public Lcom/alibaba/fastjson/serializer/JodaCodec;
.super Ljava/lang/Object;
.source "JodaCodec.java"
# interfaces
.implements Lcom/alibaba/fastjson/serializer/ObjectSerializer;
.implements Lcom/alibaba/fastjson/serializer/ContextObjectSerializer;
.implements Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
# static fields
.field private static final ISO_FIXED_FORMAT:Lorg/joda/time/format/DateTimeFormatter;
.field private static final defaultFormatter:Lorg/joda/time/format/DateTimeFormatter;
.field private static final defaultFormatter_23:Lorg/joda/time/format/DateTimeFormatter;
.field private static final defaultPatttern:Ljava/lang/String; = "yyyy-MM-dd HH:mm:ss"
.field private static final formatter_d10_cn:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_d10_de:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_d10_eur:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_d10_in:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_d10_kr:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_d10_tw:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_d10_us:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_d8:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_dt19_cn:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_dt19_cn_1:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_dt19_de:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_dt19_eur:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_dt19_in:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_dt19_kr:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_dt19_tw:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_dt19_us:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_iso8601:Lorg/joda/time/format/DateTimeFormatter;
.field private static final formatter_iso8601_pattern:Ljava/lang/String; = "yyyy-MM-dd\'T\'HH:mm:ss"
.field private static final formatter_iso8601_pattern_23:Ljava/lang/String; = "yyyy-MM-dd\'T\'HH:mm:ss.SSS"
.field private static final formatter_iso8601_pattern_29:Ljava/lang/String; = "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSSSSS"
.field public static final instance:Lcom/alibaba/fastjson/serializer/JodaCodec;
# direct methods
.method static constructor <clinit>()V
.registers 2
.line 20
new-instance v0, Lcom/alibaba/fastjson/serializer/JodaCodec;
invoke-direct {v0}, Lcom/alibaba/fastjson/serializer/JodaCodec;-><init>()V
sput-object v0, Lcom/alibaba/fastjson/serializer/JodaCodec;->instance:Lcom/alibaba/fastjson/serializer/JodaCodec;
const-string/jumbo v0, "yyyy-MM-dd HH:mm:ss"
.line 23
invoke-static {v0}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->defaultFormatter:Lorg/joda/time/format/DateTimeFormatter;
const-string/jumbo v1, "yyyy-MM-dd HH:mm:ss.SSS"
.line 24
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->defaultFormatter_23:Lorg/joda/time/format/DateTimeFormatter;
const-string/jumbo v1, "yyyy/MM/dd HH:mm:ss"
.line 25
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_tw:Lorg/joda/time/format/DateTimeFormatter;
const-string/jumbo v1, "yyyy\u5e74M\u6708d\u65e5 HH:mm:ss"
.line 26
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_cn:Lorg/joda/time/format/DateTimeFormatter;
const-string/jumbo v1, "yyyy\u5e74M\u6708d\u65e5 H\u65f6m\u5206s\u79d2"
.line 27
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_cn_1:Lorg/joda/time/format/DateTimeFormatter;
const-string/jumbo v1, "yyyy\ub144M\uc6d4d\uc77c HH:mm:ss"
.line 28
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_kr:Lorg/joda/time/format/DateTimeFormatter;
const-string v1, "MM/dd/yyyy HH:mm:ss"
.line 29
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_us:Lorg/joda/time/format/DateTimeFormatter;
const-string v1, "dd/MM/yyyy HH:mm:ss"
.line 30
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_eur:Lorg/joda/time/format/DateTimeFormatter;
const-string v1, "dd.MM.yyyy HH:mm:ss"
.line 31
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_de:Lorg/joda/time/format/DateTimeFormatter;
const-string v1, "dd-MM-yyyy HH:mm:ss"
.line 32
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_in:Lorg/joda/time/format/DateTimeFormatter;
const-string/jumbo v1, "yyyyMMdd"
.line 34
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d8:Lorg/joda/time/format/DateTimeFormatter;
const-string/jumbo v1, "yyyy/MM/dd"
.line 35
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_tw:Lorg/joda/time/format/DateTimeFormatter;
const-string/jumbo v1, "yyyy\u5e74M\u6708d\u65e5"
.line 36
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_cn:Lorg/joda/time/format/DateTimeFormatter;
const-string/jumbo v1, "yyyy\ub144M\uc6d4d\uc77c"
.line 37
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_kr:Lorg/joda/time/format/DateTimeFormatter;
const-string v1, "MM/dd/yyyy"
.line 38
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_us:Lorg/joda/time/format/DateTimeFormatter;
const-string v1, "dd/MM/yyyy"
.line 39
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_eur:Lorg/joda/time/format/DateTimeFormatter;
const-string v1, "dd.MM.yyyy"
.line 40
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_de:Lorg/joda/time/format/DateTimeFormatter;
const-string v1, "dd-MM-yyyy"
.line 41
invoke-static {v1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v1
sput-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_in:Lorg/joda/time/format/DateTimeFormatter;
.line 44
invoke-static {v0}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v0
invoke-static {}, Lorg/joda/time/DateTimeZone;->getDefault()Lorg/joda/time/DateTimeZone;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/joda/time/format/DateTimeFormatter;->withZone(Lorg/joda/time/DateTimeZone;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v0
sput-object v0, Lcom/alibaba/fastjson/serializer/JodaCodec;->ISO_FIXED_FORMAT:Lorg/joda/time/format/DateTimeFormatter;
const-string/jumbo v0, "yyyy-MM-dd\'T\'HH:mm:ss"
.line 49
invoke-static {v0}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object v0
sput-object v0, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_iso8601:Lorg/joda/time/format/DateTimeFormatter;
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 19
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private write(Lcom/alibaba/fastjson/serializer/SerializeWriter;Lorg/joda/time/ReadablePartial;Ljava/lang/String;)V
.registers 5
const-string/jumbo v0, "yyyy-MM-dd\'T\'HH:mm:ss"
.line 494
invoke-virtual {p3, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_c
.line 495
sget-object p3, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_iso8601:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_10
.line 497
:cond_c
invoke-static {p3}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object p3
.line 500
:goto_10
invoke-virtual {p3, p2}, Lorg/joda/time/format/DateTimeFormatter;->print(Lorg/joda/time/ReadablePartial;)Ljava/lang/String;
move-result-object p2
.line 501
invoke-virtual {p1, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeString(Ljava/lang/String;)V
return-void
.end method
# virtual methods
.method public deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
.registers 10
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/alibaba/fastjson/parser/DefaultJSONParser;",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Object;",
")TT;"
}
.end annotation
const/4 v4, 0x0
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, p3
.line 53
invoke-virtual/range {v0 .. v5}, Lcom/alibaba/fastjson/serializer/JodaCodec;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;Ljava/lang/String;I)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;Ljava/lang/String;I)Ljava/lang/Object;
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/alibaba/fastjson/parser/DefaultJSONParser;",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Object;",
"Ljava/lang/String;",
"I)TT;"
}
.end annotation
.line 57
iget-object p3, p1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
.line 58
invoke-interface {p3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result p5
const/16 v0, 0x8
const/4 v1, 0x0
if-ne p5, v0, :cond_f
.line 59
invoke-interface {p3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
return-object v1
.line 63
:cond_f
invoke-interface {p3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result p5
const/4 v2, 0x4
if-ne p5, v2, :cond_fe
.line 64
invoke-interface {p3}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object p1
.line 65
invoke-interface {p3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
if-eqz p4, :cond_30
const-string/jumbo p3, "yyyy-MM-dd HH:mm:ss"
.line 69
invoke-virtual {p3, p4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p3
if-eqz p3, :cond_2b
.line 70
sget-object p3, Lcom/alibaba/fastjson/serializer/JodaCodec;->defaultFormatter:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_31
.line 72
:cond_2b
invoke-static {p4}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object p3
goto :goto_31
:cond_30
move-object p3, v1
:goto_31
const-string p5, ""
.line 76
invoke-virtual {p5, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p5
if-eqz p5, :cond_3a
return-object v1
.line 80
:cond_3a
const-class p5, Lorg/joda/time/LocalDateTime;
if-ne p2, p5, :cond_5d
.line 82
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p2
const/16 p5, 0xa
if-eq p2, p5, :cond_52
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p2
if-ne p2, v0, :cond_4d
goto :goto_52
.line 86
:cond_4d
invoke-virtual {p0, p1, p3}, Lcom/alibaba/fastjson/serializer/JodaCodec;->parseDateTime(Ljava/lang/String;Lorg/joda/time/format/DateTimeFormatter;)Lorg/joda/time/LocalDateTime;
move-result-object p1
goto :goto_5c
.line 83
:cond_52
:goto_52
invoke-virtual {p0, p1, p4, p3}, Lcom/alibaba/fastjson/serializer/JodaCodec;->parseLocalDate(Ljava/lang/String;Ljava/lang/String;Lorg/joda/time/format/DateTimeFormatter;)Lorg/joda/time/LocalDate;
move-result-object p1
.line 84
sget-object p2, Lorg/joda/time/LocalTime;->MIDNIGHT:Lorg/joda/time/LocalTime;
invoke-virtual {p1, p2}, Lorg/joda/time/LocalDate;->toLocalDateTime(Lorg/joda/time/LocalTime;)Lorg/joda/time/LocalDateTime;
move-result-object p1
:goto_5c
return-object p1
.line 89
:cond_5d
const-class p5, Lorg/joda/time/LocalDate;
const/16 v2, 0x17
if-ne p2, p5, :cond_77
.line 91
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p2
if-ne p2, v2, :cond_72
.line 92
invoke-static {p1}, Lorg/joda/time/LocalDateTime;->parse(Ljava/lang/String;)Lorg/joda/time/LocalDateTime;
move-result-object p1
.line 93
invoke-virtual {p1}, Lorg/joda/time/LocalDateTime;->toLocalDate()Lorg/joda/time/LocalDate;
move-result-object p1
goto :goto_76
.line 95
:cond_72
invoke-virtual {p0, p1, p4, p3}, Lcom/alibaba/fastjson/serializer/JodaCodec;->parseLocalDate(Ljava/lang/String;Ljava/lang/String;Lorg/joda/time/format/DateTimeFormatter;)Lorg/joda/time/LocalDate;
move-result-object p1
:goto_76
return-object p1
.line 99
:cond_77
const-class p4, Lorg/joda/time/LocalTime;
if-ne p2, p4, :cond_8f
.line 101
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p2
if-ne p2, v2, :cond_8a
.line 102
invoke-static {p1}, Lorg/joda/time/LocalDateTime;->parse(Ljava/lang/String;)Lorg/joda/time/LocalDateTime;
move-result-object p1
.line 103
invoke-virtual {p1}, Lorg/joda/time/LocalDateTime;->toLocalTime()Lorg/joda/time/LocalTime;
move-result-object p1
goto :goto_8e
.line 105
:cond_8a
invoke-static {p1}, Lorg/joda/time/LocalTime;->parse(Ljava/lang/String;)Lorg/joda/time/LocalTime;
move-result-object p1
:goto_8e
return-object p1
.line 108
:cond_8f
const-class p4, Lorg/joda/time/DateTime;
if-ne p2, p4, :cond_9e
.line 109
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->defaultFormatter:Lorg/joda/time/format/DateTimeFormatter;
if-ne p3, p2, :cond_99
.line 110
sget-object p3, Lcom/alibaba/fastjson/serializer/JodaCodec;->ISO_FIXED_FORMAT:Lorg/joda/time/format/DateTimeFormatter;
.line 113
:cond_99
invoke-virtual {p0, p1, p3}, Lcom/alibaba/fastjson/serializer/JodaCodec;->parseZonedDateTime(Ljava/lang/String;Lorg/joda/time/format/DateTimeFormatter;)Lorg/joda/time/DateTime;
move-result-object p1
return-object p1
.line 116
:cond_9e
const-class p3, Lorg/joda/time/DateTimeZone;
if-ne p2, p3, :cond_a7
.line 117
invoke-static {p1}, Lorg/joda/time/DateTimeZone;->forID(Ljava/lang/String;)Lorg/joda/time/DateTimeZone;
move-result-object p1
return-object p1
.line 120
:cond_a7
const-class p3, Lorg/joda/time/Period;
if-ne p2, p3, :cond_b0
.line 121
invoke-static {p1}, Lorg/joda/time/Period;->parse(Ljava/lang/String;)Lorg/joda/time/Period;
move-result-object p1
return-object p1
.line 124
:cond_b0
const-class p3, Lorg/joda/time/Duration;
if-ne p2, p3, :cond_b9
.line 125
invoke-static {p1}, Lorg/joda/time/Duration;->parse(Ljava/lang/String;)Lorg/joda/time/Duration;
move-result-object p1
return-object p1
.line 128
:cond_b9
const-class p3, Lorg/joda/time/Instant;
if-ne p2, p3, :cond_f5
const/4 p2, 0x0
move p3, p2
.line 130
:goto_bf
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p4
if-ge p3, p4, :cond_d5
.line 131
invoke-virtual {p1, p3}, Ljava/lang/String;->charAt(I)C
move-result p4
const/16 p5, 0x30
if-lt p4, p5, :cond_d6
const/16 p5, 0x39
if-le p4, p5, :cond_d2
goto :goto_d6
:cond_d2
add-int/lit8 p3, p3, 0x1
goto :goto_bf
:cond_d5
const/4 p2, 0x1
:cond_d6
:goto_d6
if-eqz p2, :cond_f0
.line 137
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p2
if-le p2, v0, :cond_f0
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p2
const/16 p3, 0x13
if-ge p2, p3, :cond_f0
.line 138
invoke-static {p1}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide p1
.line 139
new-instance p3, Lorg/joda/time/Instant;
invoke-direct {p3, p1, p2}, Lorg/joda/time/Instant;-><init>(J)V
return-object p3
.line 142
:cond_f0
invoke-static {p1}, Lorg/joda/time/Instant;->parse(Ljava/lang/String;)Lorg/joda/time/Instant;
move-result-object p1
return-object p1
.line 145
:cond_f5
const-class p3, Lorg/joda/time/format/DateTimeFormatter;
if-ne p2, p3, :cond_18c
.line 146
invoke-static {p1}, Lorg/joda/time/format/DateTimeFormat;->forPattern(Ljava/lang/String;)Lorg/joda/time/format/DateTimeFormatter;
move-result-object p1
return-object p1
.line 148
:cond_fe
invoke-interface {p3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result p4
const/4 p5, 0x2
if-ne p4, p5, :cond_152
.line 149
invoke-interface {p3}, Lcom/alibaba/fastjson/parser/JSONLexer;->longValue()J
move-result-wide p4
.line 150
invoke-interface {p3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 152
sget-object p1, Lcom/alibaba/fastjson/JSON;->defaultTimeZone:Ljava/util/TimeZone;
if-nez p1, :cond_114
.line 154
invoke-static {}, Ljava/util/TimeZone;->getDefault()Ljava/util/TimeZone;
move-result-object p1
.line 157
:cond_114
const-class p3, Lorg/joda/time/DateTime;
if-ne p2, p3, :cond_122
.line 158
new-instance p2, Lorg/joda/time/DateTime;
invoke-static {p1}, Lorg/joda/time/DateTimeZone;->forTimeZone(Ljava/util/TimeZone;)Lorg/joda/time/DateTimeZone;
move-result-object p1
invoke-direct {p2, p4, p5, p1}, Lorg/joda/time/DateTime;-><init>(JLorg/joda/time/DateTimeZone;)V
return-object p2
.line 161
:cond_122
new-instance p3, Lorg/joda/time/LocalDateTime;
invoke-static {p1}, Lorg/joda/time/DateTimeZone;->forTimeZone(Ljava/util/TimeZone;)Lorg/joda/time/DateTimeZone;
move-result-object p1
invoke-direct {p3, p4, p5, p1}, Lorg/joda/time/LocalDateTime;-><init>(JLorg/joda/time/DateTimeZone;)V
.line 162
const-class p1, Lorg/joda/time/LocalDateTime;
if-ne p2, p1, :cond_130
return-object p3
.line 166
:cond_130
const-class p1, Lorg/joda/time/LocalDate;
if-ne p2, p1, :cond_139
.line 167
invoke-virtual {p3}, Lorg/joda/time/LocalDateTime;->toLocalDate()Lorg/joda/time/LocalDate;
move-result-object p1
return-object p1
.line 170
:cond_139
const-class p1, Lorg/joda/time/LocalTime;
if-ne p2, p1, :cond_142
.line 171
invoke-virtual {p3}, Lorg/joda/time/LocalDateTime;->toLocalTime()Lorg/joda/time/LocalTime;
move-result-object p1
return-object p1
.line 174
:cond_142
const-class p1, Lorg/joda/time/Instant;
if-ne p2, p1, :cond_14c
.line 175
new-instance p1, Lorg/joda/time/Instant;
invoke-direct {p1, p4, p5}, Lorg/joda/time/Instant;-><init>(J)V
return-object p1
.line 180
:cond_14c
new-instance p1, Ljava/lang/UnsupportedOperationException;
invoke-direct {p1}, Ljava/lang/UnsupportedOperationException;-><init>()V
throw p1
.line 181
:cond_152
invoke-interface {p3}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result p3
const/16 p4, 0xc
if-ne p3, p4, :cond_18d
.line 182
invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject()Lcom/alibaba/fastjson/JSONObject;
move-result-object p1
.line 184
const-class p3, Lorg/joda/time/Instant;
if-ne p2, p3, :cond_18c
const-string p2, "epochSecond"
.line 185
invoke-virtual {p1, p2}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p2
.line 187
instance-of p3, p2, Ljava/lang/Number;
if-eqz p3, :cond_177
.line 188
check-cast p2, Ljava/lang/Number;
.line 189
invoke-static {p2}, Lcom/alibaba/fastjson/util/TypeUtils;->longExtractValue(Ljava/lang/Number;)J
move-result-wide p1
.line 188
invoke-static {p1, p2}, Lorg/joda/time/Instant;->ofEpochSecond(J)Lorg/joda/time/Instant;
move-result-object p1
return-object p1
:cond_177
const-string p2, "millis"
.line 192
invoke-virtual {p1, p2}, Lcom/alibaba/fastjson/JSONObject;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
.line 193
instance-of p2, p1, Ljava/lang/Number;
if-eqz p2, :cond_18c
.line 194
check-cast p1, Ljava/lang/Number;
.line 195
invoke-static {p1}, Lcom/alibaba/fastjson/util/TypeUtils;->longExtractValue(Ljava/lang/Number;)J
move-result-wide p1
.line 194
invoke-static {p1, p2}, Lorg/joda/time/Instant;->ofEpochMilli(J)Lorg/joda/time/Instant;
move-result-object p1
return-object p1
:cond_18c
return-object v1
.line 199
:cond_18d
new-instance p1, Ljava/lang/UnsupportedOperationException;
invoke-direct {p1}, Ljava/lang/UnsupportedOperationException;-><init>()V
throw p1
.end method
.method public getFastMatchToken()I
.registers 2
const/4 v0, 0x4
return v0
.end method
.method protected parseDateTime(Ljava/lang/String;Lorg/joda/time/format/DateTimeFormatter;)Lorg/joda/time/LocalDateTime;
.registers 19
move-object/from16 v0, p1
if-nez p2, :cond_14a
.line 206
invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I
move-result v1
const/16 v2, 0x20
const/16 v3, 0x10
const/16 v4, 0xd
const/4 v5, 0x7
const/16 v6, 0x2e
const/4 v7, 0x0
const/4 v8, 0x4
const/16 v9, 0x13
const/4 v10, 0x1
const/16 v11, 0x3a
const/16 v12, 0xa
const/16 v13, 0x30
const/16 v14, 0x2d
if-ne v1, v9, :cond_b9
.line 207
invoke-virtual {v0, v8}, Ljava/lang/String;->charAt(I)C
move-result v1
.line 208
invoke-virtual {v0, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
.line 209
invoke-virtual {v0, v12}, Ljava/lang/String;->charAt(I)C
move-result v15
.line 210
invoke-virtual {v0, v4}, Ljava/lang/String;->charAt(I)C
move-result v4
.line 211
invoke-virtual {v0, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
if-ne v4, v11, :cond_e8
if-ne v3, v11, :cond_e8
if-ne v1, v14, :cond_4a
if-ne v5, v14, :cond_4a
const/16 v1, 0x54
if-ne v15, v1, :cond_44
.line 215
sget-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_iso8601:Lorg/joda/time/format/DateTimeFormatter;
goto/16 :goto_ea
:cond_44
if-ne v15, v2, :cond_e8
.line 217
sget-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->defaultFormatter:Lorg/joda/time/format/DateTimeFormatter;
goto/16 :goto_ea
:cond_4a
const/16 v2, 0x2f
if-ne v1, v2, :cond_54
if-ne v5, v2, :cond_54
.line 220
sget-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_tw:Lorg/joda/time/format/DateTimeFormatter;
goto/16 :goto_ea
.line 222
:cond_54
invoke-virtual {v0, v7}, Ljava/lang/String;->charAt(I)C
move-result v3
.line 223
invoke-virtual {v0, v10}, Ljava/lang/String;->charAt(I)C
move-result v4
const/4 v5, 0x2
.line 224
invoke-virtual {v0, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
const/4 v11, 0x3
.line 225
invoke-virtual {v0, v11}, Ljava/lang/String;->charAt(I)C
move-result v11
const/4 v15, 0x5
.line 226
invoke-virtual {v0, v15}, Ljava/lang/String;->charAt(I)C
move-result v15
if-ne v5, v2, :cond_ab
if-ne v15, v2, :cond_ab
sub-int/2addr v3, v13
mul-int/2addr v3, v12
sub-int/2addr v4, v13
add-int/2addr v3, v4
sub-int/2addr v11, v13
mul-int/2addr v11, v12
sub-int/2addr v1, v13
add-int/2addr v11, v1
const/16 v1, 0xc
if-le v3, v1, :cond_7f
.line 231
sget-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_eur:Lorg/joda/time/format/DateTimeFormatter;
goto/16 :goto_ea
:cond_7f
if-le v11, v1, :cond_85
.line 233
sget-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_us:Lorg/joda/time/format/DateTimeFormatter;
goto/16 :goto_ea
.line 235
:cond_85
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v1
invoke-virtual {v1}, Ljava/util/Locale;->getCountry()Ljava/lang/String;
move-result-object v1
const-string v2, "US"
.line 237
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_98
.line 238
sget-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_us:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_ea
:cond_98
const-string v2, "BR"
.line 239
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_a8
const-string v2, "AU"
.line 240
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_e8
.line 241
:cond_a8
sget-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_eur:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_ea
:cond_ab
if-ne v5, v6, :cond_b2
if-ne v15, v6, :cond_b2
.line 245
sget-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_de:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_ea
:cond_b2
if-ne v5, v14, :cond_e8
if-ne v15, v14, :cond_e8
.line 247
sget-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_in:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_ea
.line 251
:cond_b9
invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I
move-result v1
const/16 v15, 0x17
if-ne v1, v15, :cond_e8
.line 252
invoke-virtual {v0, v8}, Ljava/lang/String;->charAt(I)C
move-result v1
.line 253
invoke-virtual {v0, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
.line 254
invoke-virtual {v0, v12}, Ljava/lang/String;->charAt(I)C
move-result v12
.line 255
invoke-virtual {v0, v4}, Ljava/lang/String;->charAt(I)C
move-result v4
.line 256
invoke-virtual {v0, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
.line 257
invoke-virtual {v0, v9}, Ljava/lang/String;->charAt(I)C
move-result v15
if-ne v4, v11, :cond_e8
if-ne v3, v11, :cond_e8
if-ne v1, v14, :cond_e8
if-ne v5, v14, :cond_e8
if-ne v12, v2, :cond_e8
if-ne v15, v6, :cond_e8
.line 266
sget-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->defaultFormatter_23:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_ea
:cond_e8
move-object/from16 v1, p2
.line 270
:goto_ea
invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I
move-result v2
const/16 v3, 0x11
if-lt v2, v3, :cond_114
.line 271
invoke-virtual {v0, v8}, Ljava/lang/String;->charAt(I)C
move-result v2
const/16 v3, 0x5e74
if-ne v2, v3, :cond_10d
.line 273
invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I
move-result v1
sub-int/2addr v1, v10
invoke-virtual {v0, v1}, Ljava/lang/String;->charAt(I)C
move-result v1
const/16 v2, 0x79d2
if-ne v1, v2, :cond_10a
.line 274
sget-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_cn_1:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_114
.line 276
:cond_10a
sget-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_cn:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_114
:cond_10d
const v3, 0xb144
if-ne v2, v3, :cond_114
.line 279
sget-object v1, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_kr:Lorg/joda/time/format/DateTimeFormatter;
:cond_114
:goto_114
move v2, v7
.line 284
:goto_115
invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I
move-result v3
if-ge v2, v3, :cond_129
.line 285
invoke-virtual {v0, v2}, Ljava/lang/String;->charAt(I)C
move-result v3
if-lt v3, v13, :cond_12a
const/16 v4, 0x39
if-le v3, v4, :cond_126
goto :goto_12a
:cond_126
add-int/lit8 v2, v2, 0x1
goto :goto_115
:cond_129
move v7, v10
:cond_12a
:goto_12a
if-eqz v7, :cond_14c
.line 291
invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I
move-result v2
const/16 v3, 0x8
if-le v2, v3, :cond_14c
invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I
move-result v2
if-ge v2, v9, :cond_14c
.line 292
invoke-static/range {p1 .. p1}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v0
.line 293
new-instance v2, Lorg/joda/time/LocalDateTime;
sget-object v3, Lcom/alibaba/fastjson/JSON;->defaultTimeZone:Ljava/util/TimeZone;
invoke-static {v3}, Lorg/joda/time/DateTimeZone;->forTimeZone(Ljava/util/TimeZone;)Lorg/joda/time/DateTimeZone;
move-result-object v3
invoke-direct {v2, v0, v1, v3}, Lorg/joda/time/LocalDateTime;-><init>(JLorg/joda/time/DateTimeZone;)V
return-object v2
:cond_14a
move-object/from16 v1, p2
:cond_14c
if-nez v1, :cond_153
.line 298
invoke-static/range {p1 .. p1}, Lorg/joda/time/LocalDateTime;->parse(Ljava/lang/String;)Lorg/joda/time/LocalDateTime;
move-result-object v0
goto :goto_157
.line 299
:cond_153
invoke-static {v0, v1}, Lorg/joda/time/LocalDateTime;->parse(Ljava/lang/String;Lorg/joda/time/format/DateTimeFormatter;)Lorg/joda/time/LocalDateTime;
move-result-object v0
:goto_157
return-object v0
.end method
.method protected parseLocalDate(Ljava/lang/String;Ljava/lang/String;Lorg/joda/time/format/DateTimeFormatter;)Lorg/joda/time/LocalDate;
.registers 16
if-nez p3, :cond_e7
.line 304
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p2
const/16 v0, 0x8
if-ne p2, v0, :cond_c
.line 305
sget-object p3, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d8:Lorg/joda/time/format/DateTimeFormatter;
.line 308
:cond_c
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p2
const/4 v1, 0x4
const/4 v2, 0x0
const/4 v3, 0x1
const/16 v4, 0xa
const/16 v5, 0x30
if-ne p2, v4, :cond_91
.line 309
invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C
move-result p2
const/4 v6, 0x7
.line 310
invoke-virtual {p1, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
const/16 v7, 0x2f
if-ne p2, v7, :cond_2a
if-ne v6, v7, :cond_2a
.line 312
sget-object p3, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_tw:Lorg/joda/time/format/DateTimeFormatter;
.line 315
:cond_2a
invoke-virtual {p1, v2}, Ljava/lang/String;->charAt(I)C
move-result v6
.line 316
invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C
move-result v8
const/4 v9, 0x2
.line 317
invoke-virtual {p1, v9}, Ljava/lang/String;->charAt(I)C
move-result v9
const/4 v10, 0x3
.line 318
invoke-virtual {p1, v10}, Ljava/lang/String;->charAt(I)C
move-result v10
const/4 v11, 0x5
.line 319
invoke-virtual {p1, v11}, Ljava/lang/String;->charAt(I)C
move-result v11
if-ne v9, v7, :cond_80
if-ne v11, v7, :cond_80
sub-int/2addr v6, v5
mul-int/2addr v6, v4
sub-int/2addr v8, v5
add-int/2addr v6, v8
sub-int/2addr v10, v5
mul-int/2addr v10, v4
sub-int/2addr p2, v5
add-int/2addr v10, p2
const/16 p2, 0xc
if-le v6, p2, :cond_55
.line 324
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_eur:Lorg/joda/time/format/DateTimeFormatter;
:goto_53
move-object p3, p2
goto :goto_91
:cond_55
if-le v10, p2, :cond_5a
.line 326
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_us:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_53
.line 328
:cond_5a
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object p2
invoke-virtual {p2}, Ljava/util/Locale;->getCountry()Ljava/lang/String;
move-result-object p2
const-string v4, "US"
.line 330
invoke-virtual {p2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_6d
.line 331
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_us:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_53
:cond_6d
const-string v4, "BR"
.line 332
invoke-virtual {p2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_7d
const-string v4, "AU"
.line 333
invoke-virtual {p2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_91
.line 334
:cond_7d
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_eur:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_53
:cond_80
const/16 p2, 0x2e
if-ne v9, p2, :cond_89
if-ne v11, p2, :cond_89
.line 338
sget-object p3, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_de:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_91
:cond_89
const/16 p2, 0x2d
if-ne v9, p2, :cond_91
if-ne v11, p2, :cond_91
.line 340
sget-object p3, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_in:Lorg/joda/time/format/DateTimeFormatter;
.line 344
:cond_91
:goto_91
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p2
const/16 v4, 0x9
if-lt p2, v4, :cond_ad
.line 345
invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C
move-result p2
const/16 v1, 0x5e74
if-ne p2, v1, :cond_a5
.line 347
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_cn:Lorg/joda/time/format/DateTimeFormatter;
:goto_a3
move-object p3, p2
goto :goto_ad
:cond_a5
const v1, 0xb144
if-ne p2, v1, :cond_ad
.line 349
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_d10_kr:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_a3
:cond_ad
:goto_ad
move p2, v2
.line 354
:goto_ae
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v1
if-ge p2, v1, :cond_c2
.line 355
invoke-virtual {p1, p2}, Ljava/lang/String;->charAt(I)C
move-result v1
if-lt v1, v5, :cond_c3
const/16 v4, 0x39
if-le v1, v4, :cond_bf
goto :goto_c3
:cond_bf
add-int/lit8 p2, p2, 0x1
goto :goto_ae
:cond_c2
move v2, v3
:cond_c3
:goto_c3
if-eqz v2, :cond_e7
.line 361
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p2
if-le p2, v0, :cond_e7
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p2
const/16 v0, 0x13
if-ge p2, v0, :cond_e7
.line 362
invoke-static {p1}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide p1
.line 363
new-instance p3, Lorg/joda/time/LocalDateTime;
sget-object v0, Lcom/alibaba/fastjson/JSON;->defaultTimeZone:Ljava/util/TimeZone;
invoke-static {v0}, Lorg/joda/time/DateTimeZone;->forTimeZone(Ljava/util/TimeZone;)Lorg/joda/time/DateTimeZone;
move-result-object v0
invoke-direct {p3, p1, p2, v0}, Lorg/joda/time/LocalDateTime;-><init>(JLorg/joda/time/DateTimeZone;)V
.line 364
invoke-virtual {p3}, Lorg/joda/time/LocalDateTime;->toLocalDate()Lorg/joda/time/LocalDate;
move-result-object p1
return-object p1
:cond_e7
if-nez p3, :cond_ee
.line 369
invoke-static {p1}, Lorg/joda/time/LocalDate;->parse(Ljava/lang/String;)Lorg/joda/time/LocalDate;
move-result-object p1
goto :goto_f2
.line 370
:cond_ee
invoke-static {p1, p3}, Lorg/joda/time/LocalDate;->parse(Ljava/lang/String;Lorg/joda/time/format/DateTimeFormatter;)Lorg/joda/time/LocalDate;
move-result-object p1
:goto_f2
return-object p1
.end method
.method protected parseZonedDateTime(Ljava/lang/String;Lorg/joda/time/format/DateTimeFormatter;)Lorg/joda/time/DateTime;
.registers 14
if-nez p2, :cond_e0
.line 375
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
const/16 v1, 0x13
const/4 v2, 0x1
const/4 v3, 0x4
if-ne v0, v1, :cond_b6
.line 376
invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C
move-result v0
const/4 v1, 0x7
.line 377
invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C
move-result v1
const/16 v4, 0xa
.line 378
invoke-virtual {p1, v4}, Ljava/lang/String;->charAt(I)C
move-result v5
const/16 v6, 0xd
.line 379
invoke-virtual {p1, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
const/16 v7, 0x10
.line 380
invoke-virtual {p1, v7}, Ljava/lang/String;->charAt(I)C
move-result v7
const/16 v8, 0x3a
if-ne v6, v8, :cond_b6
if-ne v7, v8, :cond_b6
const/16 v6, 0x2d
if-ne v0, v6, :cond_43
if-ne v1, v6, :cond_43
const/16 v0, 0x54
if-ne v5, v0, :cond_3b
.line 384
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_iso8601:Lorg/joda/time/format/DateTimeFormatter;
goto/16 :goto_b6
:cond_3b
const/16 v0, 0x20
if-ne v5, v0, :cond_b6
.line 386
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->defaultFormatter:Lorg/joda/time/format/DateTimeFormatter;
goto/16 :goto_b6
:cond_43
const/16 v5, 0x2f
if-ne v0, v5, :cond_4d
if-ne v1, v5, :cond_4d
.line 389
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_tw:Lorg/joda/time/format/DateTimeFormatter;
goto/16 :goto_b6
:cond_4d
const/4 v1, 0x0
.line 391
invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C
move-result v1
.line 392
invoke-virtual {p1, v2}, Ljava/lang/String;->charAt(I)C
move-result v7
const/4 v8, 0x2
.line 393
invoke-virtual {p1, v8}, Ljava/lang/String;->charAt(I)C
move-result v8
const/4 v9, 0x3
.line 394
invoke-virtual {p1, v9}, Ljava/lang/String;->charAt(I)C
move-result v9
const/4 v10, 0x5
.line 395
invoke-virtual {p1, v10}, Ljava/lang/String;->charAt(I)C
move-result v10
if-ne v8, v5, :cond_a7
if-ne v10, v5, :cond_a7
add-int/lit8 v1, v1, -0x30
mul-int/2addr v1, v4
add-int/lit8 v7, v7, -0x30
add-int/2addr v1, v7
add-int/lit8 v9, v9, -0x30
mul-int/2addr v9, v4
add-int/lit8 v0, v0, -0x30
add-int/2addr v9, v0
const/16 v0, 0xc
if-le v1, v0, :cond_7c
.line 400
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_eur:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_b6
:cond_7c
if-le v9, v0, :cond_81
.line 402
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_us:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_b6
.line 404
:cond_81
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
invoke-virtual {v0}, Ljava/util/Locale;->getCountry()Ljava/lang/String;
move-result-object v0
const-string v1, "US"
.line 406
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_94
.line 407
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_us:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_b6
:cond_94
const-string v1, "BR"
.line 408
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_a4
const-string v1, "AU"
.line 409
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_b6
.line 410
:cond_a4
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_eur:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_b6
:cond_a7
const/16 v0, 0x2e
if-ne v8, v0, :cond_b0
if-ne v10, v0, :cond_b0
.line 414
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_de:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_b6
:cond_b0
if-ne v8, v6, :cond_b6
if-ne v10, v6, :cond_b6
.line 416
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_in:Lorg/joda/time/format/DateTimeFormatter;
.line 422
:cond_b6
:goto_b6
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
const/16 v1, 0x11
if-lt v0, v1, :cond_e0
.line 423
invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C
move-result v0
const/16 v1, 0x5e74
if-ne v0, v1, :cond_d9
.line 425
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p2
sub-int/2addr p2, v2
invoke-virtual {p1, p2}, Ljava/lang/String;->charAt(I)C
move-result p2
const/16 v0, 0x79d2
if-ne p2, v0, :cond_d6
.line 426
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_cn_1:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_e0
.line 428
:cond_d6
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_cn:Lorg/joda/time/format/DateTimeFormatter;
goto :goto_e0
:cond_d9
const v1, 0xb144
if-ne v0, v1, :cond_e0
.line 431
sget-object p2, Lcom/alibaba/fastjson/serializer/JodaCodec;->formatter_dt19_kr:Lorg/joda/time/format/DateTimeFormatter;
:cond_e0
:goto_e0
if-nez p2, :cond_e7
.line 437
invoke-static {p1}, Lorg/joda/time/DateTime;->parse(Ljava/lang/String;)Lorg/joda/time/DateTime;
move-result-object p1
goto :goto_eb
.line 438
:cond_e7
invoke-static {p1, p2}, Lorg/joda/time/DateTime;->parse(Ljava/lang/String;Lorg/joda/time/format/DateTimeFormatter;)Lorg/joda/time/DateTime;
move-result-object p1
:goto_eb
return-object p1
.end method
.method public write(Lcom/alibaba/fastjson/serializer/JSONSerializer;Ljava/lang/Object;Lcom/alibaba/fastjson/serializer/BeanContext;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 487
iget-object p1, p1, Lcom/alibaba/fastjson/serializer/JSONSerializer;->out:Lcom/alibaba/fastjson/serializer/SerializeWriter;
.line 488
invoke-virtual {p3}, Lcom/alibaba/fastjson/serializer/BeanContext;->getFormat()Ljava/lang/String;
move-result-object p3
.line 489
check-cast p2, Lorg/joda/time/ReadablePartial;
invoke-direct {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/JodaCodec;->write(Lcom/alibaba/fastjson/serializer/SerializeWriter;Lorg/joda/time/ReadablePartial;Ljava/lang/String;)V
return-void
.end method
.method public write(Lcom/alibaba/fastjson/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 447
iget-object p3, p1, Lcom/alibaba/fastjson/serializer/JSONSerializer;->out:Lcom/alibaba/fastjson/serializer/SerializeWriter;
if-nez p2, :cond_8
.line 449
invoke-virtual {p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V
goto :goto_6b
:cond_8
if-nez p4, :cond_e
.line 452
invoke-virtual {p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p4
.line 455
:cond_e
const-class v0, Lorg/joda/time/LocalDateTime;
if-ne p4, v0, :cond_64
.line 456
sget-object p4, Lcom/alibaba/fastjson/serializer/SerializerFeature;->UseISO8601DateFormat:Lcom/alibaba/fastjson/serializer/SerializerFeature;
invoke-virtual {p4}, Lcom/alibaba/fastjson/serializer/SerializerFeature;->getMask()I
move-result p4
.line 457
check-cast p2, Lorg/joda/time/LocalDateTime;
.line 458
invoke-virtual {p1}, Lcom/alibaba/fastjson/serializer/JSONSerializer;->getDateFormatPattern()Ljava/lang/String;
move-result-object v0
if-nez v0, :cond_48
and-int/2addr p4, p5
if-nez p4, :cond_45
.line 461
sget-object p4, Lcom/alibaba/fastjson/serializer/SerializerFeature;->UseISO8601DateFormat:Lcom/alibaba/fastjson/serializer/SerializerFeature;
invoke-virtual {p1, p4}, Lcom/alibaba/fastjson/serializer/JSONSerializer;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z
move-result p4
if-eqz p4, :cond_2c
goto :goto_45
.line 463
:cond_2c
sget-object p4, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteDateUseDateFormat:Lcom/alibaba/fastjson/serializer/SerializerFeature;
invoke-virtual {p1, p4}, Lcom/alibaba/fastjson/serializer/JSONSerializer;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z
move-result p1
if-eqz p1, :cond_37
.line 464
sget-object v0, Lcom/alibaba/fastjson/JSON;->DEFFAULT_DATE_FORMAT:Ljava/lang/String;
goto :goto_48
.line 466
:cond_37
invoke-virtual {p2}, Lorg/joda/time/LocalDateTime;->getMillisOfSecond()I
move-result p1
if-nez p1, :cond_41
const-string/jumbo v0, "yyyy-MM-dd\'T\'HH:mm:ss.SSS"
goto :goto_48
:cond_41
const-string/jumbo v0, "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSSSSS"
goto :goto_48
:cond_45
:goto_45
const-string/jumbo v0, "yyyy-MM-dd\'T\'HH:mm:ss"
:cond_48
:goto_48
if-eqz v0, :cond_4e
.line 476
invoke-direct {p0, p3, p2, v0}, Lcom/alibaba/fastjson/serializer/JodaCodec;->write(Lcom/alibaba/fastjson/serializer/SerializeWriter;Lorg/joda/time/ReadablePartial;Ljava/lang/String;)V
goto :goto_6b
.line 478
:cond_4e
sget-object p1, Lcom/alibaba/fastjson/JSON;->defaultTimeZone:Ljava/util/TimeZone;
invoke-static {p1}, Lorg/joda/time/DateTimeZone;->forTimeZone(Ljava/util/TimeZone;)Lorg/joda/time/DateTimeZone;
move-result-object p1
invoke-virtual {p2, p1}, Lorg/joda/time/LocalDateTime;->toDateTime(Lorg/joda/time/DateTimeZone;)Lorg/joda/time/DateTime;
move-result-object p1
invoke-virtual {p1}, Lorg/joda/time/DateTime;->toInstant()Lorg/joda/time/Instant;
move-result-object p1
invoke-virtual {p1}, Lorg/joda/time/Instant;->getMillis()J
move-result-wide p1
invoke-virtual {p3, p1, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeLong(J)V
goto :goto_6b
.line 481
:cond_64
invoke-virtual {p2}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object p1
invoke-virtual {p3, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeString(Ljava/lang/String;)V
:goto_6b
return-void
.end method