d.smali
.class public final Lcom/google/gson/d;
.super Ljava/lang/Object;
.source "Gson.java"
# static fields
.field private static final bfe:Lcom/google/gson/b/a;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/gson/b/a",
"<*>;"
}
.end annotation
.end field
# instance fields
.field private final bff:Ljava/lang/ThreadLocal;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ThreadLocal",
"<",
"Ljava/util/Map",
"<",
"Lcom/google/gson/b/a",
"<*>;",
"Lcom/google/gson/e",
"<*>;>;>;"
}
.end annotation
.end field
.field private final bfg:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Lcom/google/gson/b/a",
"<*>;",
"Lcom/google/gson/n",
"<*>;>;"
}
.end annotation
.end field
.field private final bfh:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List",
"<",
"Lcom/google/gson/o;",
">;"
}
.end annotation
.end field
.field private final bfi:Lcom/google/gson/internal/b;
.field private final bfj:Lcom/google/gson/internal/a/e;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 112
const-class v0, Ljava/lang/Object;
invoke-static {v0}, Lcom/google/gson/b/a;->v(Ljava/lang/Class;)Lcom/google/gson/b/a;
move-result-object v0
sput-object v0, Lcom/google/gson/d;->bfe:Lcom/google/gson/b/a;
return-void
.end method
.method public constructor <init>()V
.registers 7
.prologue
.line 174
sget-object v1, Lcom/google/gson/internal/c;->bfy:Lcom/google/gson/internal/c;
sget-object v2, Lcom/google/gson/FieldNamingPolicy;->IDENTITY:Lcom/google/gson/FieldNamingPolicy;
.line 175
invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map;
move-result-object v3
sget-object v4, Lcom/google/gson/LongSerializationPolicy;->DEFAULT:Lcom/google/gson/LongSerializationPolicy;
.line 178
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v5
move-object v0, p0
.line 174
invoke-direct/range {v0 .. v5}, Lcom/google/gson/d;-><init>(Lcom/google/gson/internal/c;Lcom/google/gson/c;Ljava/util/Map;Lcom/google/gson/LongSerializationPolicy;Ljava/util/List;)V
.line 179
return-void
.end method
.method private constructor <init>(Lcom/google/gson/internal/c;Lcom/google/gson/c;Ljava/util/Map;Lcom/google/gson/LongSerializationPolicy;Ljava/util/List;)V
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/gson/internal/c;",
"Lcom/google/gson/c;",
"Ljava/util/Map",
"<",
"Ljava/lang/reflect/Type;",
"Lcom/google/gson/f",
"<*>;>;",
"Lcom/google/gson/LongSerializationPolicy;",
"Ljava/util/List",
"<",
"Lcom/google/gson/o;",
">;)V"
}
.end annotation
.prologue
.line 186
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 122
new-instance v0, Ljava/lang/ThreadLocal;
invoke-direct {v0}, Ljava/lang/ThreadLocal;-><init>()V
iput-object v0, p0, Lcom/google/gson/d;->bff:Ljava/lang/ThreadLocal;
.line 125
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
iput-object v0, p0, Lcom/google/gson/d;->bfg:Ljava/util/Map;
.line 187
new-instance v0, Lcom/google/gson/internal/b;
invoke-direct {v0, p3}, Lcom/google/gson/internal/b;-><init>(Ljava/util/Map;)V
iput-object v0, p0, Lcom/google/gson/d;->bfi:Lcom/google/gson/internal/b;
.line 196
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 199
sget-object v0, Lcom/google/gson/internal/a/r;->bhy:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 200
sget-object v0, Lcom/google/gson/internal/a/i;->bfX:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 203
invoke-interface {v1, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 206
invoke-interface {v1, p5}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 209
sget-object v0, Lcom/google/gson/internal/a/r;->bhd:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 210
sget-object v0, Lcom/google/gson/internal/a/r;->bgO:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 211
sget-object v0, Lcom/google/gson/internal/a/r;->bgI:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 212
sget-object v0, Lcom/google/gson/internal/a/r;->bgK:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 213
sget-object v0, Lcom/google/gson/internal/a/r;->bgM:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1331
sget-object v0, Lcom/google/gson/LongSerializationPolicy;->DEFAULT:Lcom/google/gson/LongSerializationPolicy;
if-ne p4, v0, :cond_152
.line 1332
sget-object v0, Lcom/google/gson/internal/a/r;->bgV:Lcom/google/gson/n;
.line 215
:goto_4c
sget-object v2, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
const-class v3, Ljava/lang/Long;
invoke-static {v2, v3, v0}, Lcom/google/gson/internal/a/r;->a(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/n;)Lcom/google/gson/o;
move-result-object v2
invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 216
sget-object v2, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
const-class v3, Ljava/lang/Double;
.line 2278
new-instance v4, Lcom/google/gson/d$1;
invoke-direct {v4}, Lcom/google/gson/d$1;-><init>()V
.line 216
invoke-static {v2, v3, v4}, Lcom/google/gson/internal/a/r;->a(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/n;)Lcom/google/gson/o;
move-result-object v2
invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 218
sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
const-class v3, Ljava/lang/Float;
.line 2302
new-instance v4, Lcom/google/gson/d$2;
invoke-direct {v4}, Lcom/google/gson/d$2;-><init>()V
.line 218
invoke-static {v2, v3, v4}, Lcom/google/gson/internal/a/r;->a(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/n;)Lcom/google/gson/o;
move-result-object v2
invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 220
sget-object v2, Lcom/google/gson/internal/a/r;->bgX:Lcom/google/gson/o;
invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 221
sget-object v2, Lcom/google/gson/internal/a/r;->bgQ:Lcom/google/gson/o;
invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 222
sget-object v2, Lcom/google/gson/internal/a/r;->bgS:Lcom/google/gson/o;
invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 223
const-class v2, Ljava/util/concurrent/atomic/AtomicLong;
.line 2353
new-instance v3, Lcom/google/gson/d$4;
invoke-direct {v3, v0}, Lcom/google/gson/d$4;-><init>(Lcom/google/gson/n;)V
.line 2361
invoke-virtual {v3}, Lcom/google/gson/d$4;->Aa()Lcom/google/gson/n;
move-result-object v3
.line 223
invoke-static {v2, v3}, Lcom/google/gson/internal/a/r;->a(Ljava/lang/Class;Lcom/google/gson/n;)Lcom/google/gson/o;
move-result-object v2
invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 224
const-class v2, Ljava/util/concurrent/atomic/AtomicLongArray;
.line 2365
new-instance v3, Lcom/google/gson/d$5;
invoke-direct {v3, v0}, Lcom/google/gson/d$5;-><init>(Lcom/google/gson/n;)V
.line 2388
invoke-virtual {v3}, Lcom/google/gson/d$5;->Aa()Lcom/google/gson/n;
move-result-object v0
.line 224
invoke-static {v2, v0}, Lcom/google/gson/internal/a/r;->a(Ljava/lang/Class;Lcom/google/gson/n;)Lcom/google/gson/o;
move-result-object v0
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 225
sget-object v0, Lcom/google/gson/internal/a/r;->bgU:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 226
sget-object v0, Lcom/google/gson/internal/a/r;->bgZ:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 227
sget-object v0, Lcom/google/gson/internal/a/r;->bhf:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 228
sget-object v0, Lcom/google/gson/internal/a/r;->bhh:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 229
const-class v0, Ljava/math/BigDecimal;
sget-object v2, Lcom/google/gson/internal/a/r;->bhb:Lcom/google/gson/n;
invoke-static {v0, v2}, Lcom/google/gson/internal/a/r;->a(Ljava/lang/Class;Lcom/google/gson/n;)Lcom/google/gson/o;
move-result-object v0
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 230
const-class v0, Ljava/math/BigInteger;
sget-object v2, Lcom/google/gson/internal/a/r;->bhc:Lcom/google/gson/n;
invoke-static {v0, v2}, Lcom/google/gson/internal/a/r;->a(Ljava/lang/Class;Lcom/google/gson/n;)Lcom/google/gson/o;
move-result-object v0
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 231
sget-object v0, Lcom/google/gson/internal/a/r;->bhj:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 232
sget-object v0, Lcom/google/gson/internal/a/r;->bhl:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 233
sget-object v0, Lcom/google/gson/internal/a/r;->bhp:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 234
sget-object v0, Lcom/google/gson/internal/a/r;->bhr:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 235
sget-object v0, Lcom/google/gson/internal/a/r;->bhw:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 236
sget-object v0, Lcom/google/gson/internal/a/r;->bhn:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 237
sget-object v0, Lcom/google/gson/internal/a/r;->bgF:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 238
sget-object v0, Lcom/google/gson/internal/a/d;->bfX:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 239
sget-object v0, Lcom/google/gson/internal/a/r;->bhu:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 240
sget-object v0, Lcom/google/gson/internal/a/n;->bfX:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 241
sget-object v0, Lcom/google/gson/internal/a/m;->bfX:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 242
sget-object v0, Lcom/google/gson/internal/a/r;->bhs:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 243
sget-object v0, Lcom/google/gson/internal/a/a;->bfX:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 244
sget-object v0, Lcom/google/gson/internal/a/r;->bgD:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 247
new-instance v0, Lcom/google/gson/internal/a/b;
iget-object v2, p0, Lcom/google/gson/d;->bfi:Lcom/google/gson/internal/b;
invoke-direct {v0, v2}, Lcom/google/gson/internal/a/b;-><init>(Lcom/google/gson/internal/b;)V
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 248
new-instance v0, Lcom/google/gson/internal/a/g;
iget-object v2, p0, Lcom/google/gson/d;->bfi:Lcom/google/gson/internal/b;
invoke-direct {v0, v2}, Lcom/google/gson/internal/a/g;-><init>(Lcom/google/gson/internal/b;)V
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 249
new-instance v0, Lcom/google/gson/internal/a/e;
iget-object v2, p0, Lcom/google/gson/d;->bfi:Lcom/google/gson/internal/b;
invoke-direct {v0, v2}, Lcom/google/gson/internal/a/e;-><init>(Lcom/google/gson/internal/b;)V
iput-object v0, p0, Lcom/google/gson/d;->bfj:Lcom/google/gson/internal/a/e;
.line 250
iget-object v0, p0, Lcom/google/gson/d;->bfj:Lcom/google/gson/internal/a/e;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 251
sget-object v0, Lcom/google/gson/internal/a/r;->bhz:Lcom/google/gson/o;
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 252
new-instance v0, Lcom/google/gson/internal/a/j;
iget-object v2, p0, Lcom/google/gson/d;->bfi:Lcom/google/gson/internal/b;
invoke-direct {v0, v2, p2, p1}, Lcom/google/gson/internal/a/j;-><init>(Lcom/google/gson/internal/b;Lcom/google/gson/c;Lcom/google/gson/internal/c;)V
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 255
invoke-static {v1}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object v0
iput-object v0, p0, Lcom/google/gson/d;->bfh:Ljava/util/List;
.line 256
return-void
.line 1334
:cond_152
new-instance v0, Lcom/google/gson/d$3;
invoke-direct {v0}, Lcom/google/gson/d$3;-><init>()V
goto/16 :goto_4c
.end method
.method public static a(Ljava/io/Reader;)Lcom/google/gson/stream/a;
.registers 3
.prologue
.line 728
new-instance v0, Lcom/google/gson/stream/a;
invoke-direct {v0, p0}, Lcom/google/gson/stream/a;-><init>(Ljava/io/Reader;)V
.line 18326
const/4 v1, 0x0
iput-boolean v1, v0, Lcom/google/gson/stream/a;->bhN:Z
.line 730
return-object v0
.end method
.method public static a(Ljava/io/Writer;)Lcom/google/gson/stream/b;
.registers 3
.prologue
.line 716
new-instance v0, Lcom/google/gson/stream/b;
invoke-direct {v0, p0}, Lcom/google/gson/stream/b;-><init>(Ljava/io/Writer;)V
.line 18269
const/4 v1, 0x0
iput-boolean v1, v0, Lcom/google/gson/stream/b;->bia:Z
.line 721
return-object v0
.end method
.method private a(Lcom/google/gson/stream/a;Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/google/gson/stream/a;",
"Ljava/lang/reflect/Type;",
")TT;"
}
.end annotation
.prologue
const/4 v1, 0x1
.line 880
.line 19333
iget-boolean v2, p1, Lcom/google/gson/stream/a;->bhN:Z
.line 20326
iput-boolean v1, p1, Lcom/google/gson/stream/a;->bhN:Z
.line 884
:try_start_5
invoke-virtual {p1}, Lcom/google/gson/stream/a;->Aj()Lcom/google/gson/stream/JsonToken;
.line 885
const/4 v1, 0x0
.line 886
invoke-static {p2}, Lcom/google/gson/b/a;->d(Ljava/lang/reflect/Type;)Lcom/google/gson/b/a;
move-result-object v0
.line 887
invoke-virtual {p0, v0}, Lcom/google/gson/d;->a(Lcom/google/gson/b/a;)Lcom/google/gson/n;
move-result-object v0
.line 888
invoke-virtual {v0, p1}, Lcom/google/gson/n;->a(Lcom/google/gson/stream/a;)Ljava/lang/Object;
:try_end_14
.catch Ljava/io/EOFException; {:try_start_5 .. :try_end_14} :catch_18
.catch Ljava/lang/IllegalStateException; {:try_start_5 .. :try_end_14} :catch_29
.catch Ljava/io/IOException; {:try_start_5 .. :try_end_14} :catch_30
.catchall {:try_start_5 .. :try_end_14} :catchall_25
move-result-object v0
.line 21326
iput-boolean v2, p1, Lcom/google/gson/stream/a;->bhN:Z
.line 896
:goto_17
return-object v0
.line 890
:catch_18
move-exception v0
.line 895
if-eqz v1, :cond_1f
.line 22326
iput-boolean v2, p1, Lcom/google/gson/stream/a;->bhN:Z
.line 896
const/4 v0, 0x0
goto :goto_17
.line 898
:cond_1f
:try_start_1f
new-instance v1, Lcom/google/gson/JsonSyntaxException;
invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;-><init>(Ljava/lang/Throwable;)V
throw v1
:try_end_25
.catchall {:try_start_1f .. :try_end_25} :catchall_25
.line 905
:catchall_25
move-exception v0
.line 23326
iput-boolean v2, p1, Lcom/google/gson/stream/a;->bhN:Z
.line 905
throw v0
.line 899
:catch_29
move-exception v0
.line 900
:try_start_2a
new-instance v1, Lcom/google/gson/JsonSyntaxException;
invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;-><init>(Ljava/lang/Throwable;)V
throw v1
.line 901
:catch_30
move-exception v0
.line 903
new-instance v1, Lcom/google/gson/JsonSyntaxException;
invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;-><init>(Ljava/lang/Throwable;)V
throw v1
:try_end_37
.catchall {:try_start_2a .. :try_end_37} :catchall_25
.end method
.method private static a(Ljava/lang/Object;Lcom/google/gson/stream/a;)V
.registers 4
.prologue
.line 860
if-eqz p0, :cond_20
:try_start_2
invoke-virtual {p1}, Lcom/google/gson/stream/a;->Aj()Lcom/google/gson/stream/JsonToken;
move-result-object v0
sget-object v1, Lcom/google/gson/stream/JsonToken;->END_DOCUMENT:Lcom/google/gson/stream/JsonToken;
if-eq v0, v1, :cond_20
.line 861
new-instance v0, Lcom/google/gson/JsonIOException;
const-string v1, "JSON document was not fully consumed."
invoke-direct {v0, v1}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_12
.catch Lcom/google/gson/stream/MalformedJsonException; {:try_start_2 .. :try_end_12} :catch_12
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_12} :catch_19
.line 863
:catch_12
move-exception v0
.line 864
new-instance v1, Lcom/google/gson/JsonSyntaxException;
invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;-><init>(Ljava/lang/Throwable;)V
throw v1
.line 865
:catch_19
move-exception v0
.line 866
new-instance v1, Lcom/google/gson/JsonIOException;
invoke-direct {v1, v0}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/Throwable;)V
throw v1
.line 867
:cond_20
return-void
.end method
.method static o(D)V
.registers 6
.prologue
.line 323
invoke-static {p0, p1}, Ljava/lang/Double;->isNaN(D)Z
move-result v0
if-nez v0, :cond_c
invoke-static {p0, p1}, Ljava/lang/Double;->isInfinite(D)Z
move-result v0
if-eqz v0, :cond_25
.line 324
:cond_c
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, p0, p1}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " is not a valid double value as per JSON specification. To override this behavior, use GsonBuilder.serializeSpecialFloatingPointValues() method."
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 328
:cond_25
return-void
.end method
# virtual methods
.method public final a(Lcom/google/gson/b/a;)Lcom/google/gson/n;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/google/gson/b/a",
"<TT;>;)",
"Lcom/google/gson/n",
"<TT;>;"
}
.end annotation
.prologue
.line 399
iget-object v1, p0, Lcom/google/gson/d;->bfg:Ljava/util/Map;
if-nez p1, :cond_f
sget-object v0, Lcom/google/gson/d;->bfe:Lcom/google/gson/b/a;
:goto_6
invoke-interface {v1, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/gson/n;
.line 400
if-eqz v0, :cond_11
.line 427
:cond_e
:goto_e
return-object v0
:cond_f
move-object v0, p1
.line 399
goto :goto_6
.line 404
:cond_11
iget-object v0, p0, Lcom/google/gson/d;->bff:Ljava/lang/ThreadLocal;
invoke-virtual {v0}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map;
.line 405
const/4 v1, 0x0
.line 406
if-nez v0, :cond_8e
.line 407
new-instance v1, Ljava/util/HashMap;
invoke-direct {v1}, Ljava/util/HashMap;-><init>()V
.line 408
iget-object v0, p0, Lcom/google/gson/d;->bff:Ljava/lang/ThreadLocal;
invoke-virtual {v0, v1}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V
.line 409
const/4 v0, 0x1
move-object v2, v1
move v1, v0
.line 413
:goto_29
invoke-interface {v2, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/gson/e;
.line 414
if-nez v0, :cond_e
.line 419
:try_start_31
new-instance v3, Lcom/google/gson/e;
invoke-direct {v3}, Lcom/google/gson/e;-><init>()V
.line 420
invoke-interface {v2, p1, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 422
iget-object v0, p0, Lcom/google/gson/d;->bfh:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v4
:cond_3f
invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_79
invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/gson/o;
.line 423
invoke-interface {v0, p0, p1}, Lcom/google/gson/o;->a(Lcom/google/gson/d;Lcom/google/gson/b/a;)Lcom/google/gson/n;
move-result-object v0
.line 424
if-eqz v0, :cond_3f
.line 2960
iget-object v4, v3, Lcom/google/gson/e;->bfl:Lcom/google/gson/n;
if-eqz v4, :cond_67
.line 2961
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:try_end_5b
.catchall {:try_start_31 .. :try_end_5b} :catchall_5b
.line 432
:catchall_5b
move-exception v0
invoke-interface {v2, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
.line 434
if-eqz v1, :cond_66
.line 435
iget-object v1, p0, Lcom/google/gson/d;->bff:Ljava/lang/ThreadLocal;
invoke-virtual {v1}, Ljava/lang/ThreadLocal;->remove()V
:cond_66
throw v0
.line 2963
:cond_67
:try_start_67
iput-object v0, v3, Lcom/google/gson/e;->bfl:Lcom/google/gson/n;
.line 426
iget-object v3, p0, Lcom/google/gson/d;->bfg:Ljava/util/Map;
invoke-interface {v3, p1, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_6e
.catchall {:try_start_67 .. :try_end_6e} :catchall_5b
.line 432
invoke-interface {v2, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
.line 434
if-eqz v1, :cond_e
.line 435
iget-object v1, p0, Lcom/google/gson/d;->bff:Ljava/lang/ThreadLocal;
invoke-virtual {v1}, Ljava/lang/ThreadLocal;->remove()V
goto :goto_e
.line 430
:cond_79
:try_start_79
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "GSON cannot handle "
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v0, v3}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_8e
.catchall {:try_start_79 .. :try_end_8e} :catchall_5b
:cond_8e
move-object v2, v0
goto :goto_29
.end method
.method public final a(Lcom/google/gson/o;Lcom/google/gson/b/a;)Lcom/google/gson/n;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/google/gson/o;",
"Lcom/google/gson/b/a",
"<TT;>;)",
"Lcom/google/gson/n",
"<TT;>;"
}
.end annotation
.prologue
.line 493
iget-object v0, p0, Lcom/google/gson/d;->bfh:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_a
.line 494
iget-object p1, p0, Lcom/google/gson/d;->bfj:Lcom/google/gson/internal/a/e;
.line 497
:cond_a
const/4 v0, 0x0
.line 498
iget-object v1, p0, Lcom/google/gson/d;->bfh:Ljava/util/List;
invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
move v1, v0
:cond_12
:goto_12
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_2c
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/gson/o;
.line 499
if-nez v1, :cond_25
.line 500
if-ne v0, p1, :cond_12
.line 501
const/4 v0, 0x1
move v1, v0
goto :goto_12
.line 506
:cond_25
invoke-interface {v0, p0, p2}, Lcom/google/gson/o;->a(Lcom/google/gson/d;Lcom/google/gson/b/a;)Lcom/google/gson/n;
move-result-object v0
.line 507
if-eqz v0, :cond_12
.line 508
return-object v0
.line 511
:cond_2c
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "GSON cannot serialize "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public final a(Ljava/io/Reader;Ljava/lang/Class;)Ljava/lang/Object;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/io/Reader;",
"Ljava/lang/Class",
"<TT;>;)TT;"
}
.end annotation
.prologue
.line 825
invoke-static {p1}, Lcom/google/gson/d;->a(Ljava/io/Reader;)Lcom/google/gson/stream/a;
move-result-object v0
.line 826
invoke-direct {p0, v0, p2}, Lcom/google/gson/d;->a(Lcom/google/gson/stream/a;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object v1
.line 827
invoke-static {v1, v0}, Lcom/google/gson/d;->a(Ljava/lang/Object;Lcom/google/gson/stream/a;)V
.line 828
invoke-static {p2}, Lcom/google/gson/internal/j;->s(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0, v1}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public final a(Ljava/lang/String;Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/String;",
"Ljava/lang/reflect/Type;",
")TT;"
}
.end annotation
.prologue
.line 798
if-nez p1, :cond_4
.line 799
const/4 v0, 0x0
.line 803
:goto_3
return-object v0
.line 801
:cond_4
new-instance v0, Ljava/io/StringReader;
invoke-direct {v0, p1}, Ljava/io/StringReader;-><init>(Ljava/lang/String;)V
.line 18852
invoke-static {v0}, Lcom/google/gson/d;->a(Ljava/io/Reader;)Lcom/google/gson/stream/a;
move-result-object v1
.line 18853
invoke-direct {p0, v1, p2}, Lcom/google/gson/d;->a(Lcom/google/gson/stream/a;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object v0
.line 18854
invoke-static {v0, v1}, Lcom/google/gson/d;->a(Ljava/lang/Object;Lcom/google/gson/stream/a;)V
goto :goto_3
.end method
.method public final ap(Ljava/lang/Object;)Ljava/lang/String;
.registers 10
.prologue
.line 580
if-nez p1, :cond_44
.line 581
sget-object v3, Lcom/google/gson/j;->bfn:Lcom/google/gson/j;
.line 3687
new-instance v2, Ljava/io/StringWriter;
invoke-direct {v2}, Ljava/io/StringWriter;-><init>()V
.line 4076
:try_start_9
move-object v0, v2
check-cast v0, Ljava/io/Writer;
move-object v1, v0
.line 3702
invoke-static {v1}, Lcom/google/gson/d;->a(Ljava/io/Writer;)Lcom/google/gson/stream/b;
move-result-object v4
.line 5242
iget-boolean v5, v4, Lcom/google/gson/stream/b;->bhN:Z
.line 6235
const/4 v1, 0x1
iput-boolean v1, v4, Lcom/google/gson/stream/b;->bhN:Z
.line 6261
iget-boolean v6, v4, Lcom/google/gson/stream/b;->bhY:Z
.line 7253
const/4 v1, 0x1
iput-boolean v1, v4, Lcom/google/gson/stream/b;->bhY:Z
.line 7277
iget-boolean v7, v4, Lcom/google/gson/stream/b;->bia:Z
.line 8269
const/4 v1, 0x0
iput-boolean v1, v4, Lcom/google/gson/stream/b;->bia:Z
:try_end_20
.catch Ljava/io/IOException; {:try_start_9 .. :try_end_20} :catch_3d
.line 4745
:try_start_20
invoke-static {v3, v4}, Lcom/google/gson/internal/k;->a(Lcom/google/gson/i;Lcom/google/gson/stream/b;)V
:try_end_23
.catch Ljava/io/IOException; {:try_start_20 .. :try_end_23} :catch_2e
.catchall {:try_start_20 .. :try_end_23} :catchall_35
.line 9235
:try_start_23
iput-boolean v5, v4, Lcom/google/gson/stream/b;->bhN:Z
.line 9253
iput-boolean v6, v4, Lcom/google/gson/stream/b;->bhY:Z
.line 9269
iput-boolean v7, v4, Lcom/google/gson/stream/b;->bia:Z
:try_end_29
.catch Ljava/io/IOException; {:try_start_23 .. :try_end_29} :catch_3d
.line 3689
invoke-virtual {v2}, Ljava/io/StringWriter;->toString()Ljava/lang/String;
move-result-object v1
.line 583
:goto_2d
return-object v1
.line 4746
:catch_2e
move-exception v1
.line 4747
:try_start_2f
new-instance v2, Lcom/google/gson/JsonIOException;
invoke-direct {v2, v1}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/Throwable;)V
throw v2
:try_end_35
.catchall {:try_start_2f .. :try_end_35} :catchall_35
.line 4749
:catchall_35
move-exception v1
.line 10235
:try_start_36
iput-boolean v5, v4, Lcom/google/gson/stream/b;->bhN:Z
.line 10253
iput-boolean v6, v4, Lcom/google/gson/stream/b;->bhY:Z
.line 10269
iput-boolean v7, v4, Lcom/google/gson/stream/b;->bia:Z
.line 4751
throw v1
:try_end_3d
.catch Ljava/io/IOException; {:try_start_36 .. :try_end_3d} :catch_3d
.line 3704
:catch_3d
move-exception v1
.line 3705
new-instance v2, Lcom/google/gson/JsonIOException;
invoke-direct {v2, v1}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/Throwable;)V
throw v2
.line 583
:cond_44
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v3
.line 10602
new-instance v2, Ljava/io/StringWriter;
invoke-direct {v2}, Ljava/io/StringWriter;-><init>()V
.line 11076
:try_start_4d
move-object v0, v2
check-cast v0, Ljava/io/Writer;
move-object v1, v0
.line 10647
invoke-static {v1}, Lcom/google/gson/d;->a(Ljava/io/Writer;)Lcom/google/gson/stream/b;
move-result-object v4
.line 11661
invoke-static {v3}, Lcom/google/gson/b/a;->d(Ljava/lang/reflect/Type;)Lcom/google/gson/b/a;
move-result-object v1
invoke-virtual {p0, v1}, Lcom/google/gson/d;->a(Lcom/google/gson/b/a;)Lcom/google/gson/n;
move-result-object v1
.line 12242
iget-boolean v3, v4, Lcom/google/gson/stream/b;->bhN:Z
.line 13235
const/4 v5, 0x1
iput-boolean v5, v4, Lcom/google/gson/stream/b;->bhN:Z
.line 13261
iget-boolean v5, v4, Lcom/google/gson/stream/b;->bhY:Z
.line 14253
const/4 v6, 0x1
iput-boolean v6, v4, Lcom/google/gson/stream/b;->bhY:Z
.line 14277
iget-boolean v6, v4, Lcom/google/gson/stream/b;->bia:Z
.line 15269
const/4 v7, 0x0
iput-boolean v7, v4, Lcom/google/gson/stream/b;->bia:Z
:try_end_6c
.catch Ljava/io/IOException; {:try_start_4d .. :try_end_6c} :catch_89
.line 11669
:try_start_6c
invoke-virtual {v1, v4, p1}, Lcom/google/gson/n;->a(Lcom/google/gson/stream/b;Ljava/lang/Object;)V
:try_end_6f
.catch Ljava/io/IOException; {:try_start_6c .. :try_end_6f} :catch_7a
.catchall {:try_start_6c .. :try_end_6f} :catchall_81
.line 16235
:try_start_6f
iput-boolean v3, v4, Lcom/google/gson/stream/b;->bhN:Z
.line 16253
iput-boolean v5, v4, Lcom/google/gson/stream/b;->bhY:Z
.line 16269
iput-boolean v6, v4, Lcom/google/gson/stream/b;->bia:Z
:try_end_75
.catch Ljava/io/IOException; {:try_start_6f .. :try_end_75} :catch_89
.line 10604
invoke-virtual {v2}, Ljava/io/StringWriter;->toString()Ljava/lang/String;
move-result-object v1
goto :goto_2d
.line 11670
:catch_7a
move-exception v1
.line 11671
:try_start_7b
new-instance v2, Lcom/google/gson/JsonIOException;
invoke-direct {v2, v1}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/Throwable;)V
throw v2
:try_end_81
.catchall {:try_start_7b .. :try_end_81} :catchall_81
.line 11673
:catchall_81
move-exception v1
.line 17235
:try_start_82
iput-boolean v3, v4, Lcom/google/gson/stream/b;->bhN:Z
.line 17253
iput-boolean v5, v4, Lcom/google/gson/stream/b;->bhY:Z
.line 17269
iput-boolean v6, v4, Lcom/google/gson/stream/b;->bia:Z
.line 11675
throw v1
:try_end_89
.catch Ljava/io/IOException; {:try_start_82 .. :try_end_89} :catch_89
.line 10649
:catch_89
move-exception v1
.line 10650
new-instance v2, Lcom/google/gson/JsonIOException;
invoke-direct {v2, v1}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/Throwable;)V
throw v2
.end method
.method public final b(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/String;",
"Ljava/lang/Class",
"<TT;>;)TT;"
}
.end annotation
.prologue
.line 774
invoke-virtual {p0, p1, p2}, Lcom/google/gson/d;->a(Ljava/lang/String;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object v0
.line 775
invoke-static {p2}, Lcom/google/gson/internal/j;->s(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1, v0}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public final p(Ljava/lang/Class;)Lcom/google/gson/n;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class",
"<TT;>;)",
"Lcom/google/gson/n",
"<TT;>;"
}
.end annotation
.prologue
.line 521
invoke-static {p1}, Lcom/google/gson/b/a;->v(Ljava/lang/Class;)Lcom/google/gson/b/a;
move-result-object v0
invoke-virtual {p0, v0}, Lcom/google/gson/d;->a(Lcom/google/gson/b/a;)Lcom/google/gson/n;
move-result-object v0
return-object v0
.end method
.method public final toString()Ljava/lang/String;
.registers 3
.prologue
.line 983
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "{serializeNulls:false,factories:"
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 985
iget-object v1, p0, Lcom/google/gson/d;->bfh:Ljava/util/List;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ",instanceCreators:"
.line 986
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v1, p0, Lcom/google/gson/d;->bfi:Lcom/google/gson/internal/b;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "}"
.line 987
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
.line 988
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 983
return-object v0
.end method