FastDateParser.smali
.class public Lim/tpelyyftgw/messenger/time/FastDateParser;
.super Ljava/lang/Object;
.source "FastDateParser.java"
# interfaces
.implements Lim/tpelyyftgw/messenger/time/DateParser;
.implements Ljava/io/Serializable;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lim/tpelyyftgw/messenger/time/FastDateParser$TimeZoneStrategy;,
Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;,
Lim/tpelyyftgw/messenger/time/FastDateParser$TextStrategy;,
Lim/tpelyyftgw/messenger/time/FastDateParser$CopyQuotedStrategy;,
Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
}
.end annotation
# static fields
.field private static final ABBREVIATED_YEAR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private static final DAY_OF_MONTH_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private static final DAY_OF_WEEK_IN_MONTH_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private static final DAY_OF_YEAR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private static final HOUR_OF_DAY_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private static final HOUR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field static final JAPANESE_IMPERIAL:Ljava/util/Locale;
.field private static final LITERAL_YEAR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private static final MILLISECOND_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private static final MINUTE_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private static final MODULO_HOUR_OF_DAY_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private static final MODULO_HOUR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private static final NUMBER_MONTH_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private static final SECOND_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private static final WEEK_OF_MONTH_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private static final WEEK_OF_YEAR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private static final caches:[Ljava/util/concurrent/ConcurrentMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"[",
"Ljava/util/concurrent/ConcurrentMap<",
"Ljava/util/Locale;",
"Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;",
">;"
}
.end annotation
.end field
.field private static final formatPattern:Ljava/util/regex/Pattern;
.field private static final serialVersionUID:J = 0x2L
# instance fields
.field private final century:I
.field private transient currentFormatField:Ljava/lang/String;
.field private final locale:Ljava/util/Locale;
.field private transient nextStrategy:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private transient parsePattern:Ljava/util/regex/Pattern;
.field private final pattern:Ljava/lang/String;
.field private final startYear:I
.field private transient strategies:[Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.field private final timeZone:Ljava/util/TimeZone;
# direct methods
.method static constructor <clinit>()V
.registers 3
.line 69
new-instance v0, Ljava/util/Locale;
const-string v1, "JP"
const-string v2, "ja"
invoke-direct {v0, v2, v1, v1}, Ljava/util/Locale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->JAPANESE_IMPERIAL:Ljava/util/Locale;
.line 491
const-string v0, "D+|E+|F+|G+|H+|K+|M+|L+|S+|W+|Z+|a+|d+|h+|k+|m+|s+|w+|y+|z+|\'\'|\'[^\']++(\'\'[^\']*+)*+\'|[^\'A-Za-z]++"
invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v0
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->formatPattern:Ljava/util/regex/Pattern;
.line 552
const/16 v0, 0x11
new-array v0, v0, [Ljava/util/concurrent/ConcurrentMap;
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->caches:[Ljava/util/concurrent/ConcurrentMap;
.line 736
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$1;
const/4 v1, 0x1
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser$1;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->ABBREVIATED_YEAR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 845
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$2;
const/4 v2, 0x2
invoke-direct {v0, v2}, Lim/tpelyyftgw/messenger/time/FastDateParser$2;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->NUMBER_MONTH_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 851
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->LITERAL_YEAR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 852
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;
const/4 v1, 0x3
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->WEEK_OF_YEAR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 853
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;
const/4 v1, 0x4
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->WEEK_OF_MONTH_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 854
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;
const/4 v1, 0x6
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->DAY_OF_YEAR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 855
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;
const/4 v1, 0x5
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->DAY_OF_MONTH_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 856
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;
const/16 v1, 0x8
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->DAY_OF_WEEK_IN_MONTH_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 857
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;
const/16 v1, 0xb
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->HOUR_OF_DAY_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 858
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$3;
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser$3;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->MODULO_HOUR_OF_DAY_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 864
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$4;
const/16 v1, 0xa
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser$4;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->MODULO_HOUR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 870
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->HOUR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 871
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;
const/16 v1, 0xc
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->MINUTE_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 872
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;
const/16 v1, 0xd
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->SECOND_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 873
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;
const/16 v1, 0xe
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser$NumberStrategy;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->MILLISECOND_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
return-void
.end method
.method protected constructor <init>(Ljava/lang/String;Ljava/util/TimeZone;Ljava/util/Locale;)V
.registers 5
.param p1, "pattern" # Ljava/lang/String;
.param p2, "timeZone" # Ljava/util/TimeZone;
.param p3, "locale" # Ljava/util/Locale;
.line 95
const/4 v0, 0x0
invoke-direct {p0, p1, p2, p3, v0}, Lim/tpelyyftgw/messenger/time/FastDateParser;-><init>(Ljava/lang/String;Ljava/util/TimeZone;Ljava/util/Locale;Ljava/util/Date;)V
.line 96
return-void
.end method
.method protected constructor <init>(Ljava/lang/String;Ljava/util/TimeZone;Ljava/util/Locale;Ljava/util/Date;)V
.registers 8
.param p1, "pattern" # Ljava/lang/String;
.param p2, "timeZone" # Ljava/util/TimeZone;
.param p3, "locale" # Ljava/util/Locale;
.param p4, "centuryStart" # Ljava/util/Date;
.line 108
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 109
iput-object p1, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->pattern:Ljava/lang/String;
.line 110
iput-object p2, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->timeZone:Ljava/util/TimeZone;
.line 111
iput-object p3, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->locale:Ljava/util/Locale;
.line 113
invoke-static {p2, p3}, Ljava/util/Calendar;->getInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;
move-result-object v0
.line 115
.local v0, "definingCalendar":Ljava/util/Calendar;
const/4 v1, 0x1
if-eqz p4, :cond_18
.line 116
invoke-virtual {v0, p4}, Ljava/util/Calendar;->setTime(Ljava/util/Date;)V
.line 117
invoke-virtual {v0, v1}, Ljava/util/Calendar;->get(I)I
move-result v1
.local v1, "centuryStartYear":I
goto :goto_30
.line 118
.end local v1 # "centuryStartYear":I
:cond_18
sget-object v2, Lim/tpelyyftgw/messenger/time/FastDateParser;->JAPANESE_IMPERIAL:Ljava/util/Locale;
invoke-virtual {p3, v2}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_22
.line 119
const/4 v1, 0x0
.restart local v1 # "centuryStartYear":I
goto :goto_30
.line 122
.end local v1 # "centuryStartYear":I
:cond_22
new-instance v2, Ljava/util/Date;
invoke-direct {v2}, Ljava/util/Date;-><init>()V
invoke-virtual {v0, v2}, Ljava/util/Calendar;->setTime(Ljava/util/Date;)V
.line 123
invoke-virtual {v0, v1}, Ljava/util/Calendar;->get(I)I
move-result v1
add-int/lit8 v1, v1, -0x50
.line 125
.restart local v1 # "centuryStartYear":I
:goto_30
div-int/lit8 v2, v1, 0x64
mul-int/lit8 v2, v2, 0x64
iput v2, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->century:I
.line 126
sub-int v2, v1, v2
iput v2, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->startYear:I
.line 128
invoke-direct {p0, v0}, Lim/tpelyyftgw/messenger/time/FastDateParser;->init(Ljava/util/Calendar;)V
.line 129
return-void
.end method
.method static synthetic access$100(Ljava/lang/StringBuilder;Ljava/lang/String;Z)Ljava/lang/StringBuilder;
.registers 4
.param p0, "x0" # Ljava/lang/StringBuilder;
.param p1, "x1" # Ljava/lang/String;
.param p2, "x2" # Z
.line 61
invoke-static {p0, p1, p2}, Lim/tpelyyftgw/messenger/time/FastDateParser;->escapeRegex(Ljava/lang/StringBuilder;Ljava/lang/String;Z)Ljava/lang/StringBuilder;
move-result-object v0
return-object v0
.end method
.method static synthetic access$200(ILjava/util/Calendar;Ljava/util/Locale;)Ljava/util/Map;
.registers 4
.param p0, "x0" # I
.param p1, "x1" # Ljava/util/Calendar;
.param p2, "x2" # Ljava/util/Locale;
.line 61
invoke-static {p0, p1, p2}, Lim/tpelyyftgw/messenger/time/FastDateParser;->getDisplayNames(ILjava/util/Calendar;Ljava/util/Locale;)Ljava/util/Map;
move-result-object v0
return-object v0
.end method
.method static synthetic access$300(Lim/tpelyyftgw/messenger/time/FastDateParser;I)I
.registers 3
.param p0, "x0" # Lim/tpelyyftgw/messenger/time/FastDateParser;
.param p1, "x1" # I
.line 61
invoke-direct {p0, p1}, Lim/tpelyyftgw/messenger/time/FastDateParser;->adjustYear(I)I
move-result v0
return v0
.end method
.method private adjustYear(I)I
.registers 4
.param p1, "twoDigitYear" # I
.line 427
iget v0, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->century:I
add-int/2addr v0, p1
.line 428
.local v0, "trial":I
iget v1, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->startYear:I
if-lt p1, v1, :cond_9
move v1, v0
goto :goto_b
:cond_9
add-int/lit8 v1, v0, 0x64
:goto_b
return v1
.end method
.method private static escapeRegex(Ljava/lang/StringBuilder;Ljava/lang/String;Z)Ljava/lang/StringBuilder;
.registers 6
.param p0, "regex" # Ljava/lang/StringBuilder;
.param p1, "value" # Ljava/lang/String;
.param p2, "unquote" # Z
.line 336
const-string v0, "\\Q"
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 337
const/4 v0, 0x0
.local v0, "i":I
:goto_6
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v1
if-ge v0, v1, :cond_4a
.line 338
invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C
move-result v1
.line 339
.local v1, "c":C
const/16 v2, 0x27
if-eq v1, v2, :cond_35
const/16 v2, 0x5c
if-eq v1, v2, :cond_19
goto :goto_44
.line 349
:cond_19
add-int/lit8 v0, v0, 0x1
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v2
if-ne v0, v2, :cond_22
.line 350
goto :goto_44
.line 359
:cond_22
invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 360
invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C
move-result v1
.line 361
const/16 v2, 0x45
if-ne v1, v2, :cond_44
.line 362
const-string v2, "E\\\\E\\"
invoke-virtual {p0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 363
const/16 v1, 0x51
goto :goto_44
.line 341
:cond_35
if-eqz p2, :cond_44
.line 342
add-int/lit8 v0, v0, 0x1
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v2
if-ne v0, v2, :cond_40
.line 343
return-object p0
.line 345
:cond_40
invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C
move-result v1
.line 369
:cond_44
:goto_44
invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 337
.end local v1 # "c":C
add-int/lit8 v0, v0, 0x1
goto :goto_6
.line 371
.end local v0 # "i":I
:cond_4a
const-string v0, "\\E"
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 372
return-object p0
.end method
.method private static getCache(I)Ljava/util/concurrent/ConcurrentMap;
.registers 5
.param p0, "field" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)",
"Ljava/util/concurrent/ConcurrentMap<",
"Ljava/util/Locale;",
"Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;",
">;"
}
.end annotation
.line 561
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->caches:[Ljava/util/concurrent/ConcurrentMap;
monitor-enter v0
.line 562
:try_start_3
sget-object v1, Lim/tpelyyftgw/messenger/time/FastDateParser;->caches:[Ljava/util/concurrent/ConcurrentMap;
aget-object v1, v1, p0
if-nez v1, :cond_13
.line 563
sget-object v1, Lim/tpelyyftgw/messenger/time/FastDateParser;->caches:[Ljava/util/concurrent/ConcurrentMap;
new-instance v2, Ljava/util/concurrent/ConcurrentHashMap;
const/4 v3, 0x3
invoke-direct {v2, v3}, Ljava/util/concurrent/ConcurrentHashMap;-><init>(I)V
aput-object v2, v1, p0
.line 565
:cond_13
sget-object v1, Lim/tpelyyftgw/messenger/time/FastDateParser;->caches:[Ljava/util/concurrent/ConcurrentMap;
aget-object v1, v1, p0
monitor-exit v0
return-object v1
.line 566
:catchall_19
move-exception v1
monitor-exit v0
:try_end_1b
.catchall {:try_start_3 .. :try_end_1b} :catchall_19
throw v1
.end method
.method private static getDisplayNameArray(IZLjava/util/Locale;)[Ljava/lang/String;
.registers 5
.param p0, "field" # I
.param p1, "isLong" # Z
.param p2, "locale" # Ljava/util/Locale;
.line 376
new-instance v0, Ljava/text/DateFormatSymbols;
invoke-direct {v0, p2}, Ljava/text/DateFormatSymbols;-><init>(Ljava/util/Locale;)V
.line 377
.local v0, "dfs":Ljava/text/DateFormatSymbols;
if-eqz p0, :cond_30
const/4 v1, 0x2
if-eq p0, v1, :cond_24
const/4 v1, 0x7
if-eq p0, v1, :cond_18
const/16 v1, 0x9
if-eq p0, v1, :cond_13
.line 387
const/4 v1, 0x0
return-object v1
.line 379
:cond_13
invoke-virtual {v0}, Ljava/text/DateFormatSymbols;->getAmPmStrings()[Ljava/lang/String;
move-result-object v1
return-object v1
.line 381
:cond_18
if-eqz p1, :cond_1f
invoke-virtual {v0}, Ljava/text/DateFormatSymbols;->getWeekdays()[Ljava/lang/String;
move-result-object v1
goto :goto_23
:cond_1f
invoke-virtual {v0}, Ljava/text/DateFormatSymbols;->getShortWeekdays()[Ljava/lang/String;
move-result-object v1
:goto_23
return-object v1
.line 385
:cond_24
if-eqz p1, :cond_2b
invoke-virtual {v0}, Ljava/text/DateFormatSymbols;->getMonths()[Ljava/lang/String;
move-result-object v1
goto :goto_2f
:cond_2b
invoke-virtual {v0}, Ljava/text/DateFormatSymbols;->getShortMonths()[Ljava/lang/String;
move-result-object v1
:goto_2f
return-object v1
.line 383
:cond_30
invoke-virtual {v0}, Ljava/text/DateFormatSymbols;->getEras()[Ljava/lang/String;
move-result-object v1
return-object v1
.end method
.method private static getDisplayNames(ILjava/util/Calendar;Ljava/util/Locale;)Ljava/util/Map;
.registers 4
.param p0, "field" # I
.param p1, "definingCalendar" # Ljava/util/Calendar;
.param p2, "locale" # Ljava/util/Locale;
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Ljava/util/Calendar;",
"Ljava/util/Locale;",
")",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.line 417
invoke-static {p0, p2}, Lim/tpelyyftgw/messenger/time/FastDateParser;->getDisplayNames(ILjava/util/Locale;)Ljava/util/Map;
move-result-object v0
return-object v0
.end method
.method private static getDisplayNames(ILjava/util/Locale;)Ljava/util/Map;
.registers 4
.param p0, "field" # I
.param p1, "locale" # Ljava/util/Locale;
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Ljava/util/Locale;",
")",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.line 402
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
.line 403
.local v0, "result":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;"
const/4 v1, 0x0
invoke-static {p0, v1, p1}, Lim/tpelyyftgw/messenger/time/FastDateParser;->getDisplayNameArray(IZLjava/util/Locale;)[Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser;->insertValuesInMap(Ljava/util/Map;[Ljava/lang/String;)V
.line 404
const/4 v1, 0x1
invoke-static {p0, v1, p1}, Lim/tpelyyftgw/messenger/time/FastDateParser;->getDisplayNameArray(IZLjava/util/Locale;)[Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser;->insertValuesInMap(Ljava/util/Map;[Ljava/lang/String;)V
.line 405
invoke-interface {v0}, Ljava/util/Map;->isEmpty()Z
move-result v1
if-eqz v1, :cond_1d
const/4 v1, 0x0
goto :goto_1e
:cond_1d
move-object v1, v0
:goto_1e
return-object v1
.end method
.method private getLocaleSpecificStrategy(ILjava/util/Calendar;)Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.registers 7
.param p1, "field" # I
.param p2, "definingCalendar" # Ljava/util/Calendar;
.line 577
invoke-static {p1}, Lim/tpelyyftgw/messenger/time/FastDateParser;->getCache(I)Ljava/util/concurrent/ConcurrentMap;
move-result-object v0
.line 578
.local v0, "cache":Ljava/util/concurrent/ConcurrentMap;, "Ljava/util/concurrent/ConcurrentMap<Ljava/util/Locale;Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;>;"
iget-object v1, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->locale:Ljava/util/Locale;
invoke-interface {v0, v1}, Ljava/util/concurrent/ConcurrentMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 579
.local v1, "strategy":Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
if-nez v1, :cond_2d
.line 580
const/16 v2, 0xf
if-ne p1, v2, :cond_1a
new-instance v2, Lim/tpelyyftgw/messenger/time/FastDateParser$TimeZoneStrategy;
iget-object v3, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->locale:Ljava/util/Locale;
invoke-direct {v2, v3}, Lim/tpelyyftgw/messenger/time/FastDateParser$TimeZoneStrategy;-><init>(Ljava/util/Locale;)V
goto :goto_21
:cond_1a
new-instance v2, Lim/tpelyyftgw/messenger/time/FastDateParser$TextStrategy;
iget-object v3, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->locale:Ljava/util/Locale;
invoke-direct {v2, p1, p2, v3}, Lim/tpelyyftgw/messenger/time/FastDateParser$TextStrategy;-><init>(ILjava/util/Calendar;Ljava/util/Locale;)V
:goto_21
move-object v1, v2
.line 583
iget-object v2, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->locale:Ljava/util/Locale;
invoke-interface {v0, v2, v1}, Ljava/util/concurrent/ConcurrentMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 584
.local v2, "inCache":Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
if-eqz v2, :cond_2d
.line 585
return-object v2
.line 588
.end local v2 # "inCache":Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
:cond_2d
return-object v1
.end method
.method private getStrategy(Ljava/lang/String;Ljava/util/Calendar;)Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.registers 7
.param p1, "formatField" # Ljava/lang/String;
.param p2, "definingCalendar" # Ljava/util/Calendar;
.line 502
const/4 v0, 0x0
invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C
move-result v1
const/16 v2, 0x79
const/4 v3, 0x2
if-eq v1, v2, :cond_80
const/16 v2, 0x7a
if-eq v1, v2, :cond_79
sparse-switch v1, :sswitch_data_8c
packed-switch v1, :pswitch_data_ba
packed-switch v1, :pswitch_data_c8
goto :goto_73
.line 524
:pswitch_18
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
const/4 v1, 0x3
if-lt v0, v1, :cond_24
invoke-direct {p0, v3, p2}, Lim/tpelyyftgw/messenger/time/FastDateParser;->getLocaleSpecificStrategy(ILjava/util/Calendar;)Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
move-result-object v0
goto :goto_26
:cond_24
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->NUMBER_MONTH_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
:goto_26
return-object v0
.line 521
:pswitch_27
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->HOUR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
return-object v0
.line 519
:pswitch_2a
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->MODULO_HOUR_OF_DAY_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
return-object v0
.line 517
:pswitch_2d
invoke-direct {p0, v0, p2}, Lim/tpelyyftgw/messenger/time/FastDateParser;->getLocaleSpecificStrategy(ILjava/util/Calendar;)Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
move-result-object v0
return-object v0
.line 515
:pswitch_32
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->DAY_OF_WEEK_IN_MONTH_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
return-object v0
.line 513
:pswitch_35
const/4 v0, 0x7
invoke-direct {p0, v0, p2}, Lim/tpelyyftgw/messenger/time/FastDateParser;->getLocaleSpecificStrategy(ILjava/util/Calendar;)Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
move-result-object v0
return-object v0
.line 511
:pswitch_3b
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->DAY_OF_YEAR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
return-object v0
.line 542
:sswitch_3e
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->WEEK_OF_YEAR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
return-object v0
.line 540
:sswitch_41
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->SECOND_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
return-object v0
.line 538
:sswitch_44
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->MINUTE_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
return-object v0
.line 536
:sswitch_47
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->HOUR_OF_DAY_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
return-object v0
.line 534
:sswitch_4a
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->MODULO_HOUR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
return-object v0
.line 532
:sswitch_4d
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->DAY_OF_MONTH_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
return-object v0
.line 530
:sswitch_50
const/16 v0, 0x9
invoke-direct {p0, v0, p2}, Lim/tpelyyftgw/messenger/time/FastDateParser;->getLocaleSpecificStrategy(ILjava/util/Calendar;)Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
move-result-object v0
return-object v0
.line 528
:sswitch_57
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->WEEK_OF_MONTH_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
return-object v0
.line 526
:sswitch_5a
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->MILLISECOND_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
return-object v0
.line 504
:sswitch_5d
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-le v0, v3, :cond_73
.line 505
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$CopyQuotedStrategy;
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v1
const/4 v2, 0x1
sub-int/2addr v1, v2
invoke-virtual {p1, v2, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/time/FastDateParser$CopyQuotedStrategy;-><init>(Ljava/lang/String;)V
return-object v0
.line 509
:cond_73
:goto_73
new-instance v0, Lim/tpelyyftgw/messenger/time/FastDateParser$CopyQuotedStrategy;
invoke-direct {v0, p1}, Lim/tpelyyftgw/messenger/time/FastDateParser$CopyQuotedStrategy;-><init>(Ljava/lang/String;)V
return-object v0
.line 547
:cond_79
:sswitch_79
const/16 v0, 0xf
invoke-direct {p0, v0, p2}, Lim/tpelyyftgw/messenger/time/FastDateParser;->getLocaleSpecificStrategy(ILjava/util/Calendar;)Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
move-result-object v0
return-object v0
.line 544
:cond_80
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-le v0, v3, :cond_89
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->LITERAL_YEAR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
goto :goto_8b
:cond_89
sget-object v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->ABBREVIATED_YEAR_STRATEGY:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
:goto_8b
return-object v0
:sswitch_data_8c
.sparse-switch
0x27 -> :sswitch_5d
0x53 -> :sswitch_5a
0x57 -> :sswitch_57
0x5a -> :sswitch_79
0x61 -> :sswitch_50
0x64 -> :sswitch_4d
0x68 -> :sswitch_4a
0x6b -> :sswitch_47
0x6d -> :sswitch_44
0x73 -> :sswitch_41
0x77 -> :sswitch_3e
.end sparse-switch
:pswitch_data_ba
.packed-switch 0x44
:pswitch_3b
:pswitch_35
:pswitch_32
:pswitch_2d
:pswitch_2a
.end packed-switch
:pswitch_data_c8
.packed-switch 0x4b
:pswitch_27
:pswitch_18
:pswitch_18
.end packed-switch
.end method
.method private init(Ljava/util/Calendar;)V
.registers 9
.param p1, "definingCalendar" # Ljava/util/Calendar;
.line 139
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
.line 140
.local v0, "regex":Ljava/lang/StringBuilder;
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 142
.local v1, "collector":Ljava/util/List;, "Ljava/util/List<Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;>;"
sget-object v2, Lim/tpelyyftgw/messenger/time/FastDateParser;->formatPattern:Ljava/util/regex/Pattern;
iget-object v3, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->pattern:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v2
.line 143
.local v2, "patternMatcher":Ljava/util/regex/Matcher;
invoke-virtual {v2}, Ljava/util/regex/Matcher;->lookingAt()Z
move-result v3
if-eqz v3, :cond_a2
.line 148
invoke-virtual {v2}, Ljava/util/regex/Matcher;->group()Ljava/lang/String;
move-result-object v3
iput-object v3, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->currentFormatField:Ljava/lang/String;
.line 149
invoke-direct {p0, v3, p1}, Lim/tpelyyftgw/messenger/time/FastDateParser;->getStrategy(Ljava/lang/String;Ljava/util/Calendar;)Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
move-result-object v3
.line 151
.local v3, "currentStrategy":Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
:goto_22
invoke-virtual {v2}, Ljava/util/regex/Matcher;->end()I
move-result v4
invoke-virtual {v2}, Ljava/util/regex/Matcher;->regionEnd()I
move-result v5
invoke-virtual {v2, v4, v5}, Ljava/util/regex/Matcher;->region(II)Ljava/util/regex/Matcher;
.line 152
invoke-virtual {v2}, Ljava/util/regex/Matcher;->lookingAt()Z
move-result v4
if-nez v4, :cond_8a
.line 153
const/4 v4, 0x0
iput-object v4, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->nextStrategy:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 154
nop
.line 164
invoke-virtual {v2}, Ljava/util/regex/Matcher;->regionStart()I
move-result v5
invoke-virtual {v2}, Ljava/util/regex/Matcher;->regionEnd()I
move-result v6
if-ne v5, v6, :cond_65
.line 167
invoke-virtual {v3, p0, v0}, Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;->addRegex(Lim/tpelyyftgw/messenger/time/FastDateParser;Ljava/lang/StringBuilder;)Z
move-result v5
if-eqz v5, :cond_4a
.line 168
invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 170
:cond_4a
iput-object v4, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->currentFormatField:Ljava/lang/String;
.line 171
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v4
new-array v4, v4, [Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
invoke-interface {v1, v4}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v4
check-cast v4, [Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
iput-object v4, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->strategies:[Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 172
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v4
iput-object v4, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->parsePattern:Ljava/util/regex/Pattern;
.line 173
return-void
.line 165
:cond_65
new-instance v4, Ljava/lang/IllegalArgumentException;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Failed to parse \""
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v6, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->pattern:Ljava/lang/String;
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v6, "\" ; gave up at index "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/util/regex/Matcher;->regionStart()I
move-result v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-direct {v4, v5}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v4
.line 156
:cond_8a
invoke-virtual {v2}, Ljava/util/regex/Matcher;->group()Ljava/lang/String;
move-result-object v4
.line 157
.local v4, "nextFormatField":Ljava/lang/String;
invoke-direct {p0, v4, p1}, Lim/tpelyyftgw/messenger/time/FastDateParser;->getStrategy(Ljava/lang/String;Ljava/util/Calendar;)Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
move-result-object v5
iput-object v5, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->nextStrategy:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 158
invoke-virtual {v3, p0, v0}, Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;->addRegex(Lim/tpelyyftgw/messenger/time/FastDateParser;Ljava/lang/StringBuilder;)Z
move-result v5
if-eqz v5, :cond_9d
.line 159
invoke-interface {v1, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 161
:cond_9d
iput-object v4, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->currentFormatField:Ljava/lang/String;
.line 162
iget-object v3, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->nextStrategy:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
.line 163
.end local v4 # "nextFormatField":Ljava/lang/String;
goto :goto_22
.line 144
.end local v3 # "currentStrategy":Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
:cond_a2
new-instance v3, Ljava/lang/IllegalArgumentException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "Illegal pattern character \'"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v5, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->pattern:Ljava/lang/String;
.line 145
invoke-virtual {v2}, Ljava/util/regex/Matcher;->regionStart()I
move-result v6
invoke-virtual {v5, v6}, Ljava/lang/String;->charAt(I)C
move-result v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
const-string v5, "\'"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-direct {v3, v4}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
goto :goto_c9
:goto_c8
throw v3
:goto_c9
goto :goto_c8
.end method
.method private static insertValuesInMap(Ljava/util/Map;[Ljava/lang/String;)V
.registers 5
.param p1, "values" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/Integer;",
">;[",
"Ljava/lang/String;",
")V"
}
.end annotation
.line 391
.local p0, "map":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;"
if-nez p1, :cond_3
.line 392
return-void
.line 394
:cond_3
const/4 v0, 0x0
.local v0, "i":I
:goto_4
array-length v1, p1
if-ge v0, v1, :cond_1f
.line 395
aget-object v1, p1, v0
if-eqz v1, :cond_1c
aget-object v1, p1, v0
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v1
if-lez v1, :cond_1c
.line 396
aget-object v1, p1, v0
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-interface {p0, v1, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 394
:cond_1c
add-int/lit8 v0, v0, 0x1
goto :goto_4
.line 399
.end local v0 # "i":I
:cond_1f
return-void
.end method
.method private readObject(Ljava/io/ObjectInputStream;)V
.registers 4
.param p1, "in" # Ljava/io/ObjectInputStream;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/ClassNotFoundException;
}
.end annotation
.line 262
invoke-virtual {p1}, Ljava/io/ObjectInputStream;->defaultReadObject()V
.line 264
iget-object v0, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->timeZone:Ljava/util/TimeZone;
iget-object v1, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->locale:Ljava/util/Locale;
invoke-static {v0, v1}, Ljava/util/Calendar;->getInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;
move-result-object v0
.line 265
.local v0, "definingCalendar":Ljava/util/Calendar;
invoke-direct {p0, v0}, Lim/tpelyyftgw/messenger/time/FastDateParser;->init(Ljava/util/Calendar;)V
.line 266
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.registers 6
.param p1, "obj" # Ljava/lang/Object;
.line 221
instance-of v0, p1, Lim/tpelyyftgw/messenger/time/FastDateParser;
const/4 v1, 0x0
if-nez v0, :cond_6
.line 222
return v1
.line 224
:cond_6
move-object v0, p1
check-cast v0, Lim/tpelyyftgw/messenger/time/FastDateParser;
.line 225
.local v0, "other":Lim/tpelyyftgw/messenger/time/FastDateParser;
iget-object v2, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->pattern:Ljava/lang/String;
iget-object v3, v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->pattern:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_29
iget-object v2, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->timeZone:Ljava/util/TimeZone;
iget-object v3, v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->timeZone:Ljava/util/TimeZone;
.line 226
invoke-virtual {v2, v3}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_29
iget-object v2, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->locale:Ljava/util/Locale;
iget-object v3, v0, Lim/tpelyyftgw/messenger/time/FastDateParser;->locale:Ljava/util/Locale;
.line 227
invoke-virtual {v2, v3}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_29
const/4 v1, 0x1
goto :goto_2a
:cond_29
nop
.line 225
:goto_2a
return v1
.end method
.method getFieldWidth()I
.registers 2
.line 446
iget-object v0, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->currentFormatField:Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v0
return v0
.end method
.method public getLocale()Ljava/util/Locale;
.registers 2
.line 198
iget-object v0, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->locale:Ljava/util/Locale;
return-object v0
.end method
.method getParsePattern()Ljava/util/regex/Pattern;
.registers 2
.line 207
iget-object v0, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->parsePattern:Ljava/util/regex/Pattern;
return-object v0
.end method
.method public getPattern()Ljava/lang/String;
.registers 2
.line 182
iget-object v0, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->pattern:Ljava/lang/String;
return-object v0
.end method
.method public getTimeZone()Ljava/util/TimeZone;
.registers 2
.line 190
iget-object v0, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->timeZone:Ljava/util/TimeZone;
return-object v0
.end method
.method public hashCode()I
.registers 4
.line 237
iget-object v0, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->pattern:Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->hashCode()I
move-result v0
iget-object v1, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->timeZone:Ljava/util/TimeZone;
invoke-virtual {v1}, Ljava/lang/Object;->hashCode()I
move-result v1
iget-object v2, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->locale:Ljava/util/Locale;
invoke-virtual {v2}, Ljava/util/Locale;->hashCode()I
move-result v2
mul-int/lit8 v2, v2, 0xd
add-int/2addr v1, v2
mul-int/lit8 v1, v1, 0xd
add-int/2addr v0, v1
return v0
.end method
.method isNextNumber()Z
.registers 2
.line 437
iget-object v0, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->nextStrategy:Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
if-eqz v0, :cond_c
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;->isNumber()Z
move-result v0
if-eqz v0, :cond_c
const/4 v0, 0x1
goto :goto_d
:cond_c
const/4 v0, 0x0
:goto_d
return v0
.end method
.method public parse(Ljava/lang/String;)Ljava/util/Date;
.registers 8
.param p1, "source" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/text/ParseException;
}
.end annotation
.line 281
new-instance v0, Ljava/text/ParsePosition;
const/4 v1, 0x0
invoke-direct {v0, v1}, Ljava/text/ParsePosition;-><init>(I)V
invoke-virtual {p0, p1, v0}, Lim/tpelyyftgw/messenger/time/FastDateParser;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;
move-result-object v0
.line 282
.local v0, "date":Ljava/util/Date;
if-nez v0, :cond_68
.line 284
iget-object v2, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->locale:Ljava/util/Locale;
sget-object v3, Lim/tpelyyftgw/messenger/time/FastDateParser;->JAPANESE_IMPERIAL:Ljava/util/Locale;
invoke-virtual {v2, v3}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z
move-result v2
const-string v3, "\" does not match "
if-eqz v2, :cond_45
.line 285
new-instance v2, Ljava/text/ParseException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "(The "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v5, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->locale:Ljava/util/Locale;
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v5, " locale does not support dates before 1868 AD)\nUnparseable date: \""
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->parsePattern:Ljava/util/regex/Pattern;
.line 287
invoke-virtual {v3}, Ljava/util/regex/Pattern;->pattern()Ljava/lang/String;
move-result-object v3
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3, v1}, Ljava/text/ParseException;-><init>(Ljava/lang/String;I)V
throw v2
.line 289
:cond_45
new-instance v2, Ljava/text/ParseException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "Unparseable date: \""
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->parsePattern:Ljava/util/regex/Pattern;
invoke-virtual {v3}, Ljava/util/regex/Pattern;->pattern()Ljava/lang/String;
move-result-object v3
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3, v1}, Ljava/text/ParseException;-><init>(Ljava/lang/String;I)V
throw v2
.line 291
:cond_68
return-object v0
.end method
.method public parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;
.registers 9
.param p1, "source" # Ljava/lang/String;
.param p2, "pos" # Ljava/text/ParsePosition;
.line 307
invoke-virtual {p2}, Ljava/text/ParsePosition;->getIndex()I
move-result v0
.line 308
.local v0, "offset":I
iget-object v1, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->parsePattern:Ljava/util/regex/Pattern;
invoke-virtual {p1, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v1
.line 309
.local v1, "matcher":Ljava/util/regex/Matcher;
invoke-virtual {v1}, Ljava/util/regex/Matcher;->lookingAt()Z
move-result v2
if-nez v2, :cond_16
.line 310
const/4 v2, 0x0
return-object v2
.line 313
:cond_16
iget-object v2, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->timeZone:Ljava/util/TimeZone;
iget-object v3, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->locale:Ljava/util/Locale;
invoke-static {v2, v3}, Ljava/util/Calendar;->getInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;
move-result-object v2
.line 314
.local v2, "cal":Ljava/util/Calendar;
invoke-virtual {v2}, Ljava/util/Calendar;->clear()V
.line 316
const/4 v3, 0x0
.local v3, "i":I
:goto_22
iget-object v4, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->strategies:[Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
array-length v5, v4
if-ge v3, v5, :cond_34
.line 317
add-int/lit8 v5, v3, 0x1
.end local v3 # "i":I
.local v5, "i":I
aget-object v3, v4, v3
.line 318
.local v3, "strategy":Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
invoke-virtual {v1, v5}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, p0, v2, v4}, Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;->setCalendar(Lim/tpelyyftgw/messenger/time/FastDateParser;Ljava/util/Calendar;Ljava/lang/String;)V
.line 319
.end local v3 # "strategy":Lim/tpelyyftgw/messenger/time/FastDateParser$Strategy;
move v3, v5
goto :goto_22
.line 320
.end local v5 # "i":I
:cond_34
invoke-virtual {v1}, Ljava/util/regex/Matcher;->end()I
move-result v3
add-int/2addr v3, v0
invoke-virtual {p2, v3}, Ljava/text/ParsePosition;->setIndex(I)V
.line 321
invoke-virtual {v2}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
move-result-object v3
return-object v3
.end method
.method public parseObject(Ljava/lang/String;)Ljava/lang/Object;
.registers 3
.param p1, "source" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/text/ParseException;
}
.end annotation
.line 273
invoke-virtual {p0, p1}, Lim/tpelyyftgw/messenger/time/FastDateParser;->parse(Ljava/lang/String;)Ljava/util/Date;
move-result-object v0
return-object v0
.end method
.method public parseObject(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Object;
.registers 4
.param p1, "source" # Ljava/lang/String;
.param p2, "pos" # Ljava/text/ParsePosition;
.line 299
invoke-virtual {p0, p1, p2}, Lim/tpelyyftgw/messenger/time/FastDateParser;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;
move-result-object v0
return-object v0
.end method
.method public toString()Ljava/lang/String;
.registers 4
.line 247
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "FastDateParser["
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->pattern:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, ","
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->locale:Ljava/util/Locale;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lim/tpelyyftgw/messenger/time/FastDateParser;->timeZone:Ljava/util/TimeZone;
invoke-virtual {v1}, Ljava/util/TimeZone;->getID()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "]"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method