DateTimeFormatterBuilder$TextField.smali
.class Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;
.super Ljava/lang/Object;
.source "DateTimeFormatterBuilder.java"
# interfaces
.implements Lorg/joda/time/format/InternalPrinter;
.implements Lorg/joda/time/format/InternalParser;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/joda/time/format/DateTimeFormatterBuilder;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = "TextField"
.end annotation
# static fields
.field private static cParseCache:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/util/Locale;",
"Ljava/util/Map<",
"Lorg/joda/time/DateTimeFieldType;",
"[",
"Ljava/lang/Object;",
">;>;"
}
.end annotation
.end field
# instance fields
.field private final iFieldType:Lorg/joda/time/DateTimeFieldType;
.field private final iShort:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 1657
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
sput-object v0, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->cParseCache:Ljava/util/Map;
return-void
.end method
.method constructor <init>(Lorg/joda/time/DateTimeFieldType;Z)V
.registers 3
.line 1663
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 1664
iput-object p1, p0, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->iFieldType:Lorg/joda/time/DateTimeFieldType;
.line 1665
iput-boolean p2, p0, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->iShort:Z
return-void
.end method
.method private print(JLorg/joda/time/Chronology;Ljava/util/Locale;)Ljava/lang/String;
.registers 6
.line 1691
iget-object v0, p0, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->iFieldType:Lorg/joda/time/DateTimeFieldType;
invoke-virtual {v0, p3}, Lorg/joda/time/DateTimeFieldType;->getField(Lorg/joda/time/Chronology;)Lorg/joda/time/DateTimeField;
move-result-object p3
.line 1692
iget-boolean v0, p0, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->iShort:Z
if-eqz v0, :cond_f
.line 1693
invoke-virtual {p3, p1, p2, p4}, Lorg/joda/time/DateTimeField;->getAsShortText(JLjava/util/Locale;)Ljava/lang/String;
move-result-object p1
return-object p1
.line 1695
:cond_f
invoke-virtual {p3, p1, p2, p4}, Lorg/joda/time/DateTimeField;->getAsText(JLjava/util/Locale;)Ljava/lang/String;
move-result-object p1
return-object p1
.end method
.method private print(Lorg/joda/time/ReadablePartial;Ljava/util/Locale;)Ljava/lang/String;
.registers 5
.line 1700
iget-object v0, p0, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->iFieldType:Lorg/joda/time/DateTimeFieldType;
invoke-interface {p1, v0}, Lorg/joda/time/ReadablePartial;->isSupported(Lorg/joda/time/DateTimeFieldType;)Z
move-result v0
if-eqz v0, :cond_20
.line 1701
iget-object v0, p0, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->iFieldType:Lorg/joda/time/DateTimeFieldType;
invoke-interface {p1}, Lorg/joda/time/ReadablePartial;->getChronology()Lorg/joda/time/Chronology;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/joda/time/DateTimeFieldType;->getField(Lorg/joda/time/Chronology;)Lorg/joda/time/DateTimeField;
move-result-object v0
.line 1702
iget-boolean v1, p0, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->iShort:Z
if-eqz v1, :cond_1b
.line 1703
invoke-virtual {v0, p1, p2}, Lorg/joda/time/DateTimeField;->getAsShortText(Lorg/joda/time/ReadablePartial;Ljava/util/Locale;)Ljava/lang/String;
move-result-object p1
return-object p1
.line 1705
:cond_1b
invoke-virtual {v0, p1, p2}, Lorg/joda/time/DateTimeField;->getAsText(Lorg/joda/time/ReadablePartial;Ljava/util/Locale;)Ljava/lang/String;
move-result-object p1
return-object p1
:cond_20
const-string p1, "\ufffd"
return-object p1
.end method
# virtual methods
.method public estimateParsedLength()I
.registers 2
.line 1713
invoke-virtual {p0}, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->estimatePrintedLength()I
move-result v0
return v0
.end method
.method public estimatePrintedLength()I
.registers 2
.line 1669
iget-boolean v0, p0, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->iShort:Z
if-eqz v0, :cond_6
const/4 v0, 0x6
goto :goto_8
:cond_6
const/16 v0, 0x14
:goto_8
return v0
.end method
.method public parseInto(Lorg/joda/time/format/DateTimeParserBucket;Ljava/lang/CharSequence;I)I
.registers 15
.line 1718
invoke-virtual {p1}, Lorg/joda/time/format/DateTimeParserBucket;->getLocale()Ljava/util/Locale;
move-result-object v0
.line 1723
sget-object v1, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->cParseCache:Ljava/util/Map;
invoke-interface {v1, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/util/Map;
if-nez v1, :cond_18
.line 1725
new-instance v1, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v1}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
.line 1726
sget-object v2, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->cParseCache:Ljava/util/Map;
invoke-interface {v2, v0, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 1728
:cond_18
iget-object v2, p0, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->iFieldType:Lorg/joda/time/DateTimeFieldType;
invoke-interface {v1, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, [Ljava/lang/Object;
const/4 v3, 0x0
const/4 v4, 0x1
if-nez v2, :cond_dc
.line 1730
new-instance v2, Ljava/util/concurrent/ConcurrentHashMap;
const/16 v5, 0x20
invoke-direct {v2, v5}, Ljava/util/concurrent/ConcurrentHashMap;-><init>(I)V
.line 1731
new-instance v6, Lorg/joda/time/MutableDateTime;
const-wide/16 v7, 0x0
sget-object v9, Lorg/joda/time/DateTimeZone;->UTC:Lorg/joda/time/DateTimeZone;
invoke-direct {v6, v7, v8, v9}, Lorg/joda/time/MutableDateTime;-><init>(JLorg/joda/time/DateTimeZone;)V
.line 1732
iget-object v7, p0, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->iFieldType:Lorg/joda/time/DateTimeFieldType;
invoke-virtual {v6, v7}, Lorg/joda/time/MutableDateTime;->property(Lorg/joda/time/DateTimeFieldType;)Lorg/joda/time/MutableDateTime$Property;
move-result-object v6
.line 1733
invoke-virtual {v6}, Lorg/joda/time/MutableDateTime$Property;->getMinimumValueOverall()I
move-result v7
.line 1734
invoke-virtual {v6}, Lorg/joda/time/MutableDateTime$Property;->getMaximumValueOverall()I
move-result v8
sub-int v9, v8, v7
if-le v9, v5, :cond_48
not-int p1, p3
return p1
.line 1738
:cond_48
invoke-virtual {v6, v0}, Lorg/joda/time/MutableDateTime$Property;->getMaximumTextLength(Ljava/util/Locale;)I
move-result v5
:goto_4c
if-gt v7, v8, :cond_9a
.line 1740
invoke-virtual {v6, v7}, Lorg/joda/time/MutableDateTime$Property;->set(I)Lorg/joda/time/MutableDateTime;
.line 1741
invoke-virtual {v6, v0}, Lorg/joda/time/MutableDateTime$Property;->getAsShortText(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v9
sget-object v10, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
invoke-interface {v2, v9, v10}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 1742
invoke-virtual {v6, v0}, Lorg/joda/time/MutableDateTime$Property;->getAsShortText(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v9
invoke-virtual {v9, v0}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v9
sget-object v10, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
invoke-interface {v2, v9, v10}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 1743
invoke-virtual {v6, v0}, Lorg/joda/time/MutableDateTime$Property;->getAsShortText(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v9
invoke-virtual {v9, v0}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v9
sget-object v10, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
invoke-interface {v2, v9, v10}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 1744
invoke-virtual {v6, v0}, Lorg/joda/time/MutableDateTime$Property;->getAsText(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v9
sget-object v10, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
invoke-interface {v2, v9, v10}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 1745
invoke-virtual {v6, v0}, Lorg/joda/time/MutableDateTime$Property;->getAsText(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v9
invoke-virtual {v9, v0}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v9
sget-object v10, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
invoke-interface {v2, v9, v10}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 1746
invoke-virtual {v6, v0}, Lorg/joda/time/MutableDateTime$Property;->getAsText(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v9
invoke-virtual {v9, v0}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v9
sget-object v10, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
invoke-interface {v2, v9, v10}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
add-int/lit8 v7, v7, 0x1
goto :goto_4c
.line 1748
:cond_9a
invoke-virtual {v0}, Ljava/util/Locale;->getLanguage()Ljava/lang/String;
move-result-object v6
const-string v7, "en"
invoke-virtual {v7, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_cb
iget-object v6, p0, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->iFieldType:Lorg/joda/time/DateTimeFieldType;
invoke-static {}, Lorg/joda/time/DateTimeFieldType;->era()Lorg/joda/time/DateTimeFieldType;
move-result-object v7
if-ne v6, v7, :cond_cb
.line 1750
sget-object v5, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
const-string v6, "BCE"
invoke-interface {v2, v6, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 1751
sget-object v5, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
const-string v6, "bce"
invoke-interface {v2, v6, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 1752
sget-object v5, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
const-string v6, "CE"
invoke-interface {v2, v6, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 1753
sget-object v5, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
const-string v6, "ce"
invoke-interface {v2, v6, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const/4 v5, 0x3
:cond_cb
const/4 v6, 0x2
new-array v6, v6, [Ljava/lang/Object;
aput-object v2, v6, v3
.line 1756
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v6, v4
.line 1757
iget-object v3, p0, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->iFieldType:Lorg/joda/time/DateTimeFieldType;
invoke-interface {v1, v3, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_e9
.line 1759
:cond_dc
aget-object v1, v2, v3
check-cast v1, Ljava/util/Map;
.line 1760
aget-object v2, v2, v4
check-cast v2, Ljava/lang/Integer;
invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
move-result v5
move-object v2, v1
.line 1763
:goto_e9
invoke-interface {p2}, Ljava/lang/CharSequence;->length()I
move-result v1
add-int/2addr v5, p3
invoke-static {v1, v5}, Ljava/lang/Math;->min(II)I
move-result v1
:goto_f2
if-le v1, p3, :cond_10b
.line 1765
invoke-interface {p2, p3, v1}, Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v3
.line 1766
invoke-interface {v2, v3}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_108
.line 1767
iget-object p2, p0, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->iFieldType:Lorg/joda/time/DateTimeFieldType;
invoke-virtual {p1, p2, v3, v0}, Lorg/joda/time/format/DateTimeParserBucket;->saveField(Lorg/joda/time/DateTimeFieldType;Ljava/lang/String;Ljava/util/Locale;)V
return v1
:cond_108
add-int/lit8 v1, v1, -0x1
goto :goto_f2
:cond_10b
not-int p1, p3
return p1
.end method
.method public printTo(Ljava/lang/Appendable;JLorg/joda/time/Chronology;ILorg/joda/time/DateTimeZone;Ljava/util/Locale;)V
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1676
:try_start_0
invoke-direct {p0, p2, p3, p4, p7}, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->print(JLorg/joda/time/Chronology;Ljava/util/Locale;)Ljava/lang/String;
move-result-object p2
invoke-interface {p1, p2}, Ljava/lang/Appendable;->append(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
:try_end_7
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_7} :catch_8
goto :goto_e
:catch_8
const p2, 0xfffd
.line 1678
invoke-interface {p1, p2}, Ljava/lang/Appendable;->append(C)Ljava/lang/Appendable;
:goto_e
return-void
.end method
.method public printTo(Ljava/lang/Appendable;Lorg/joda/time/ReadablePartial;Ljava/util/Locale;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1684
:try_start_0
invoke-direct {p0, p2, p3}, Lorg/joda/time/format/DateTimeFormatterBuilder$TextField;->print(Lorg/joda/time/ReadablePartial;Ljava/util/Locale;)Ljava/lang/String;
move-result-object p2
invoke-interface {p1, p2}, Ljava/lang/Appendable;->append(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
:try_end_7
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_7} :catch_8
goto :goto_e
:catch_8
const p2, 0xfffd
.line 1686
invoke-interface {p1, p2}, Ljava/lang/Appendable;->append(C)Ljava/lang/Appendable;
:goto_e
return-void
.end method