Gson.smali
.class public final Lcom/google/gson/Gson;
.super Ljava/lang/Object;
.source "Gson.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/gson/Gson$FutureTypeAdapter;
}
.end annotation
# static fields
.field static final DEFAULT_JSON_NON_EXECUTABLE:Z = false
.field private static final JSON_NON_EXECUTABLE_PREFIX:Ljava/lang/String; = ")]}\'\n"
# instance fields
.field private final calls:Ljava/lang/ThreadLocal;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ThreadLocal<",
"Ljava/util/Map<",
"Lcom/google/gson/reflect/TypeToken<",
"*>;",
"Lcom/google/gson/Gson$FutureTypeAdapter<",
"*>;>;>;"
}
.end annotation
.end field
.field private final constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
.field final deserializationContext:Lcom/google/gson/JsonDeserializationContext;
.field private final factories:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/google/gson/TypeAdapterFactory;",
">;"
}
.end annotation
.end field
.field private final generateNonExecutableJson:Z
.field private final htmlSafe:Z
.field private final prettyPrinting:Z
.field final serializationContext:Lcom/google/gson/JsonSerializationContext;
.field private final serializeNulls:Z
.field private final typeTokenCache:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Lcom/google/gson/reflect/TypeToken<",
"*>;",
"Lcom/google/gson/TypeAdapter<",
"*>;>;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.registers 13
.line 176
sget-object v1, Lcom/google/gson/internal/Excluder;->DEFAULT:Lcom/google/gson/internal/Excluder;
sget-object v2, Lcom/google/gson/FieldNamingPolicy;->IDENTITY:Lcom/google/gson/FieldNamingPolicy;
invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map;
move-result-object v3
sget-object v10, Lcom/google/gson/LongSerializationPolicy;->DEFAULT:Lcom/google/gson/LongSerializationPolicy;
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v11
const/4 v4, 0x0
const/4 v5, 0x0
const/4 v6, 0x0
const/4 v7, 0x1
const/4 v8, 0x0
const/4 v9, 0x0
move-object v0, p0
invoke-direct/range {v0 .. v11}, Lcom/google/gson/Gson;-><init>(Lcom/google/gson/internal/Excluder;Lcom/google/gson/FieldNamingStrategy;Ljava/util/Map;ZZZZZZLcom/google/gson/LongSerializationPolicy;Ljava/util/List;)V
return-void
.end method
.method constructor <init>(Lcom/google/gson/internal/Excluder;Lcom/google/gson/FieldNamingStrategy;Ljava/util/Map;ZZZZZZLcom/google/gson/LongSerializationPolicy;Ljava/util/List;)V
.registers 13
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/gson/internal/Excluder;",
"Lcom/google/gson/FieldNamingStrategy;",
"Ljava/util/Map<",
"Ljava/lang/reflect/Type;",
"Lcom/google/gson/InstanceCreator<",
"*>;>;ZZZZZZ",
"Lcom/google/gson/LongSerializationPolicy;",
"Ljava/util/List<",
"Lcom/google/gson/TypeAdapterFactory;",
">;)V"
}
.end annotation
.line 187
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 111
new-instance v0, Ljava/lang/ThreadLocal;
invoke-direct {v0}, Ljava/lang/ThreadLocal;-><init>()V
iput-object v0, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal;
.line 114
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
invoke-static {v0}, Ljava/util/Collections;->synchronizedMap(Ljava/util/Map;)Ljava/util/Map;
move-result-object v0
iput-object v0, p0, Lcom/google/gson/Gson;->typeTokenCache:Ljava/util/Map;
.line 125
new-instance v0, Lcom/google/gson/Gson$1;
invoke-direct {v0, p0}, Lcom/google/gson/Gson$1;-><init>(Lcom/google/gson/Gson;)V
iput-object v0, p0, Lcom/google/gson/Gson;->deserializationContext:Lcom/google/gson/JsonDeserializationContext;
.line 132
new-instance v0, Lcom/google/gson/Gson$2;
invoke-direct {v0, p0}, Lcom/google/gson/Gson$2;-><init>(Lcom/google/gson/Gson;)V
iput-object v0, p0, Lcom/google/gson/Gson;->serializationContext:Lcom/google/gson/JsonSerializationContext;
.line 188
new-instance v0, Lcom/google/gson/internal/ConstructorConstructor;
invoke-direct {v0, p3}, Lcom/google/gson/internal/ConstructorConstructor;-><init>(Ljava/util/Map;)V
iput-object v0, p0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
.line 189
iput-boolean p4, p0, Lcom/google/gson/Gson;->serializeNulls:Z
.line 190
iput-boolean p6, p0, Lcom/google/gson/Gson;->generateNonExecutableJson:Z
.line 191
iput-boolean p7, p0, Lcom/google/gson/Gson;->htmlSafe:Z
.line 192
iput-boolean p8, p0, Lcom/google/gson/Gson;->prettyPrinting:Z
.line 194
new-instance p3, Ljava/util/ArrayList;
invoke-direct {p3}, Ljava/util/ArrayList;-><init>()V
.line 197
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->JSON_ELEMENT_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 198
sget-object p4, Lcom/google/gson/internal/bind/ObjectTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 201
invoke-interface {p3, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 204
invoke-interface {p3, p11}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 207
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 208
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->INTEGER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 209
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->BOOLEAN_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 210
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->BYTE_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 211
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->SHORT_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 212
sget-object p4, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
const-class p6, Ljava/lang/Long;
invoke-direct {p0, p10}, Lcom/google/gson/Gson;->longAdapter(Lcom/google/gson/LongSerializationPolicy;)Lcom/google/gson/TypeAdapter;
move-result-object p7
invoke-static {p4, p6, p7}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
move-result-object p4
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 214
sget-object p4, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
const-class p6, Ljava/lang/Double;
invoke-direct {p0, p9}, Lcom/google/gson/Gson;->doubleAdapter(Z)Lcom/google/gson/TypeAdapter;
move-result-object p7
invoke-static {p4, p6, p7}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
move-result-object p4
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 216
sget-object p4, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
const-class p6, Ljava/lang/Float;
invoke-direct {p0, p9}, Lcom/google/gson/Gson;->floatAdapter(Z)Lcom/google/gson/TypeAdapter;
move-result-object p7
invoke-static {p4, p6, p7}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
move-result-object p4
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 218
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->NUMBER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 219
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->CHARACTER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 220
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_BUILDER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 221
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_BUFFER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 222
const-class p4, Ljava/math/BigDecimal;
sget-object p6, Lcom/google/gson/internal/bind/TypeAdapters;->BIG_DECIMAL:Lcom/google/gson/TypeAdapter;
invoke-static {p4, p6}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
move-result-object p4
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 223
const-class p4, Ljava/math/BigInteger;
sget-object p6, Lcom/google/gson/internal/bind/TypeAdapters;->BIG_INTEGER:Lcom/google/gson/TypeAdapter;
invoke-static {p4, p6}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
move-result-object p4
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 224
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->URL_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 225
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->URI_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 226
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->UUID_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 227
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->LOCALE_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 228
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->INET_ADDRESS_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 229
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->BIT_SET_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 230
sget-object p4, Lcom/google/gson/internal/bind/DateTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 231
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->CALENDAR_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 232
sget-object p4, Lcom/google/gson/internal/bind/TimeTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 233
sget-object p4, Lcom/google/gson/internal/bind/SqlDateTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 234
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->TIMESTAMP_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 235
sget-object p4, Lcom/google/gson/internal/bind/ArrayTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 236
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->CLASS_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 239
new-instance p4, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory;
invoke-direct {p4, v0}, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory;-><init>(Lcom/google/gson/internal/ConstructorConstructor;)V
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 240
new-instance p4, Lcom/google/gson/internal/bind/MapTypeAdapterFactory;
invoke-direct {p4, v0, p5}, Lcom/google/gson/internal/bind/MapTypeAdapterFactory;-><init>(Lcom/google/gson/internal/ConstructorConstructor;Z)V
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 241
new-instance p4, Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;
invoke-direct {p4, v0}, Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;-><init>(Lcom/google/gson/internal/ConstructorConstructor;)V
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 242
sget-object p4, Lcom/google/gson/internal/bind/TypeAdapters;->ENUM_FACTORY:Lcom/google/gson/TypeAdapterFactory;
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 243
new-instance p4, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;
invoke-direct {p4, v0, p2, p1}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;-><init>(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/FieldNamingStrategy;Lcom/google/gson/internal/Excluder;)V
invoke-interface {p3, p4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 246
invoke-static {p3}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object p1
iput-object p1, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List;
return-void
.end method
.method static synthetic access$000(Lcom/google/gson/Gson;D)V
.registers 3
.line 99
invoke-direct {p0, p1, p2}, Lcom/google/gson/Gson;->checkValidFloatingPoint(D)V
return-void
.end method
.method private static assertFullConsumption(Ljava/lang/Object;Lcom/google/gson/stream/JsonReader;)V
.registers 2
if-eqz p0, :cond_21
.line 782
:try_start_2
invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken;
move-result-object p0
sget-object p1, Lcom/google/gson/stream/JsonToken;->END_DOCUMENT:Lcom/google/gson/stream/JsonToken;
if-ne p0, p1, :cond_b
goto :goto_21
.line 783
:cond_b
new-instance p0, Lcom/google/gson/JsonIOException;
const-string p1, "JSON document was not fully consumed."
invoke-direct {p0, p1}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/String;)V
throw p0
:try_end_13
.catch Lcom/google/gson/stream/MalformedJsonException; {:try_start_2 .. :try_end_13} :catch_1a
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_13} :catch_13
:catch_13
move-exception p0
.line 788
new-instance p1, Lcom/google/gson/JsonIOException;
invoke-direct {p1, p0}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/Throwable;)V
throw p1
:catch_1a
move-exception p0
.line 786
new-instance p1, Lcom/google/gson/JsonSyntaxException;
invoke-direct {p1, p0}, Lcom/google/gson/JsonSyntaxException;-><init>(Ljava/lang/Throwable;)V
throw p1
:cond_21
:goto_21
return-void
.end method
.method private checkValidFloatingPoint(D)V
.registers 5
.line 298
invoke-static {p1, p2}, Ljava/lang/Double;->isNaN(D)Z
move-result v0
if-nez v0, :cond_d
invoke-static {p1, p2}, Ljava/lang/Double;->isInfinite(D)Z
move-result v0
if-nez v0, :cond_d
return-void
.line 299
:cond_d
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, p1, p2}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
const-string p1, " is not a valid double value as per JSON specification. To override this"
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, " behavior, use GsonBuilder.serializeSpecialFloatingPointValues() method."
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private doubleAdapter(Z)Lcom/google/gson/TypeAdapter;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(Z)",
"Lcom/google/gson/TypeAdapter<",
"Ljava/lang/Number;",
">;"
}
.end annotation
if-eqz p1, :cond_5
.line 251
sget-object p1, Lcom/google/gson/internal/bind/TypeAdapters;->DOUBLE:Lcom/google/gson/TypeAdapter;
return-object p1
.line 253
:cond_5
new-instance p1, Lcom/google/gson/Gson$3;
invoke-direct {p1, p0}, Lcom/google/gson/Gson$3;-><init>(Lcom/google/gson/Gson;)V
return-object p1
.end method
.method private floatAdapter(Z)Lcom/google/gson/TypeAdapter;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(Z)",
"Lcom/google/gson/TypeAdapter<",
"Ljava/lang/Number;",
">;"
}
.end annotation
if-eqz p1, :cond_5
.line 275
sget-object p1, Lcom/google/gson/internal/bind/TypeAdapters;->FLOAT:Lcom/google/gson/TypeAdapter;
return-object p1
.line 277
:cond_5
new-instance p1, Lcom/google/gson/Gson$4;
invoke-direct {p1, p0}, Lcom/google/gson/Gson$4;-><init>(Lcom/google/gson/Gson;)V
return-object p1
.end method
.method private longAdapter(Lcom/google/gson/LongSerializationPolicy;)Lcom/google/gson/TypeAdapter;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/gson/LongSerializationPolicy;",
")",
"Lcom/google/gson/TypeAdapter<",
"Ljava/lang/Number;",
">;"
}
.end annotation
.line 306
sget-object v0, Lcom/google/gson/LongSerializationPolicy;->DEFAULT:Lcom/google/gson/LongSerializationPolicy;
if-ne p1, v0, :cond_7
.line 307
sget-object p1, Lcom/google/gson/internal/bind/TypeAdapters;->LONG:Lcom/google/gson/TypeAdapter;
return-object p1
.line 309
:cond_7
new-instance p1, Lcom/google/gson/Gson$5;
invoke-direct {p1, p0}, Lcom/google/gson/Gson$5;-><init>(Lcom/google/gson/Gson;)V
return-object p1
.end method
.method private newJsonWriter(Ljava/io/Writer;)Lcom/google/gson/stream/JsonWriter;
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 645
iget-boolean v0, p0, Lcom/google/gson/Gson;->generateNonExecutableJson:Z
if-eqz v0, :cond_9
const-string v0, ")]}\'\n"
.line 646
invoke-virtual {p1, v0}, Ljava/io/Writer;->write(Ljava/lang/String;)V
.line 648
:cond_9
new-instance v0, Lcom/google/gson/stream/JsonWriter;
invoke-direct {v0, p1}, Lcom/google/gson/stream/JsonWriter;-><init>(Ljava/io/Writer;)V
.line 649
iget-boolean p1, p0, Lcom/google/gson/Gson;->prettyPrinting:Z
if-eqz p1, :cond_17
const-string p1, " "
.line 650
invoke-virtual {v0, p1}, Lcom/google/gson/stream/JsonWriter;->setIndent(Ljava/lang/String;)V
.line 652
:cond_17
iget-boolean p1, p0, Lcom/google/gson/Gson;->serializeNulls:Z
invoke-virtual {v0, p1}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V
return-object v0
.end method
# virtual methods
.method public fromJson(Lcom/google/gson/JsonElement;Ljava/lang/Class;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/google/gson/JsonElement;",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/gson/JsonSyntaxException;
}
.end annotation
.line 848
invoke-virtual {p0, p1, p2}, Lcom/google/gson/Gson;->fromJson(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object p1
.line 849
invoke-static {p2}, Lcom/google/gson/internal/Primitives;->wrap(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object p2
invoke-virtual {p2, p1}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public fromJson(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/google/gson/JsonElement;",
"Ljava/lang/reflect/Type;",
")TT;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/gson/JsonSyntaxException;
}
.end annotation
if-nez p1, :cond_4
const/4 p1, 0x0
return-object p1
.line 875
:cond_4
new-instance v0, Lcom/google/gson/internal/bind/JsonTreeReader;
invoke-direct {v0, p1}, Lcom/google/gson/internal/bind/JsonTreeReader;-><init>(Lcom/google/gson/JsonElement;)V
invoke-virtual {p0, v0, p2}, Lcom/google/gson/Gson;->fromJson(Lcom/google/gson/stream/JsonReader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public fromJson(Lcom/google/gson/stream/JsonReader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/google/gson/stream/JsonReader;",
"Ljava/lang/reflect/Type;",
")TT;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/gson/JsonIOException;,
Lcom/google/gson/JsonSyntaxException;
}
.end annotation
.line 803
invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->isLenient()Z
move-result v0
const/4 v1, 0x1
.line 804
invoke-virtual {p1, v1}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V
.line 806
:try_start_8
invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken;
const/4 v1, 0x0
.line 808
invoke-static {p2}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
move-result-object p2
.line 809
invoke-virtual {p0, p2}, Lcom/google/gson/Gson;->getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
move-result-object p2
.line 810
invoke-virtual {p2, p1}, Lcom/google/gson/TypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object;
move-result-object p2
:try_end_18
.catch Ljava/io/EOFException; {:try_start_8 .. :try_end_18} :catch_2c
.catch Ljava/lang/IllegalStateException; {:try_start_8 .. :try_end_18} :catch_25
.catch Ljava/io/IOException; {:try_start_8 .. :try_end_18} :catch_1e
.catchall {:try_start_8 .. :try_end_18} :catchall_1c
.line 827
invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V
return-object p2
:catchall_1c
move-exception p2
goto :goto_3a
:catch_1e
move-exception p2
.line 825
:try_start_1f
new-instance v1, Lcom/google/gson/JsonSyntaxException;
invoke-direct {v1, p2}, Lcom/google/gson/JsonSyntaxException;-><init>(Ljava/lang/Throwable;)V
throw v1
:catch_25
move-exception p2
.line 822
new-instance v1, Lcom/google/gson/JsonSyntaxException;
invoke-direct {v1, p2}, Lcom/google/gson/JsonSyntaxException;-><init>(Ljava/lang/Throwable;)V
throw v1
:try_end_2c
.catchall {:try_start_1f .. :try_end_2c} :catchall_1c
:catch_2c
move-exception p2
if-eqz v1, :cond_34
const/4 p2, 0x0
.line 827
invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V
return-object p2
.line 820
:cond_34
:try_start_34
new-instance v1, Lcom/google/gson/JsonSyntaxException;
invoke-direct {v1, p2}, Lcom/google/gson/JsonSyntaxException;-><init>(Ljava/lang/Throwable;)V
throw v1
:try_end_3a
.catchall {:try_start_34 .. :try_end_3a} :catchall_1c
.line 827
:goto_3a
invoke-virtual {p1, v0}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V
throw p2
.end method
.method public fromJson(Ljava/io/Reader;Ljava/lang/Class;)Ljava/lang/Object;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/io/Reader;",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/gson/JsonSyntaxException;,
Lcom/google/gson/JsonIOException;
}
.end annotation
.line 747
new-instance v0, Lcom/google/gson/stream/JsonReader;
invoke-direct {v0, p1}, Lcom/google/gson/stream/JsonReader;-><init>(Ljava/io/Reader;)V
.line 748
invoke-virtual {p0, v0, p2}, Lcom/google/gson/Gson;->fromJson(Lcom/google/gson/stream/JsonReader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object p1
.line 749
invoke-static {p1, v0}, Lcom/google/gson/Gson;->assertFullConsumption(Ljava/lang/Object;Lcom/google/gson/stream/JsonReader;)V
.line 750
invoke-static {p2}, Lcom/google/gson/internal/Primitives;->wrap(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object p2
invoke-virtual {p2, p1}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public fromJson(Ljava/io/Reader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/io/Reader;",
"Ljava/lang/reflect/Type;",
")TT;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/gson/JsonIOException;,
Lcom/google/gson/JsonSyntaxException;
}
.end annotation
.line 774
new-instance v0, Lcom/google/gson/stream/JsonReader;
invoke-direct {v0, p1}, Lcom/google/gson/stream/JsonReader;-><init>(Ljava/io/Reader;)V
.line 775
invoke-virtual {p0, v0, p2}, Lcom/google/gson/Gson;->fromJson(Lcom/google/gson/stream/JsonReader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object p1
.line 776
invoke-static {p1, v0}, Lcom/google/gson/Gson;->assertFullConsumption(Ljava/lang/Object;Lcom/google/gson/stream/JsonReader;)V
return-object p1
.end method
.method public fromJson(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/String;",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/gson/JsonSyntaxException;
}
.end annotation
.line 696
invoke-virtual {p0, p1, p2}, Lcom/google/gson/Gson;->fromJson(Ljava/lang/String;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object p1
.line 697
invoke-static {p2}, Lcom/google/gson/internal/Primitives;->wrap(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object p2
invoke-virtual {p2, p1}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public fromJson(Ljava/lang/String;Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/String;",
"Ljava/lang/reflect/Type;",
")TT;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/gson/JsonSyntaxException;
}
.end annotation
if-nez p1, :cond_4
const/4 p1, 0x0
return-object p1
.line 723
:cond_4
new-instance v0, Ljava/io/StringReader;
invoke-direct {v0, p1}, Ljava/io/StringReader;-><init>(Ljava/lang/String;)V
.line 724
invoke-virtual {p0, v0, p2}, Lcom/google/gson/Gson;->fromJson(Ljava/io/Reader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/google/gson/reflect/TypeToken<",
"TT;>;)",
"Lcom/google/gson/TypeAdapter<",
"TT;>;"
}
.end annotation
.line 335
iget-object v0, p0, Lcom/google/gson/Gson;->typeTokenCache:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/gson/TypeAdapter;
if-eqz v0, :cond_b
return-object v0
.line 340
:cond_b
iget-object v0, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal;
invoke-virtual {v0}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map;
const/4 v1, 0x0
if-nez v0, :cond_21
.line 343
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
.line 344
iget-object v1, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal;
invoke-virtual {v1, v0}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V
const/4 v1, 0x1
.line 349
:cond_21
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/gson/Gson$FutureTypeAdapter;
if-eqz v2, :cond_2a
return-object v2
.line 355
:cond_2a
:try_start_2a
new-instance v2, Lcom/google/gson/Gson$FutureTypeAdapter;
invoke-direct {v2}, Lcom/google/gson/Gson$FutureTypeAdapter;-><init>()V
.line 356
invoke-interface {v0, p1, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 358
iget-object v3, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List;
invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v3
:cond_38
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-eqz v4, :cond_5d
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/google/gson/TypeAdapterFactory;
.line 359
invoke-interface {v4, p0, p1}, Lcom/google/gson/TypeAdapterFactory;->create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
move-result-object v4
if-eqz v4, :cond_38
.line 361
invoke-virtual {v2, v4}, Lcom/google/gson/Gson$FutureTypeAdapter;->setDelegate(Lcom/google/gson/TypeAdapter;)V
.line 362
iget-object v2, p0, Lcom/google/gson/Gson;->typeTokenCache:Ljava/util/Map;
invoke-interface {v2, p1, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_52
.catchall {:try_start_2a .. :try_end_52} :catchall_74
.line 368
invoke-interface {v0, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
if-eqz v1, :cond_5c
.line 371
iget-object p1, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal;
invoke-virtual {p1}, Ljava/lang/ThreadLocal;->remove()V
:cond_5c
return-object v4
.line 366
:cond_5d
:try_start_5d
new-instance v2, Ljava/lang/IllegalArgumentException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "GSON cannot handle "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v2
:try_end_74
.catchall {:try_start_5d .. :try_end_74} :catchall_74
:catchall_74
move-exception v2
.line 368
invoke-interface {v0, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
if-eqz v1, :cond_7f
.line 371
iget-object p1, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal;
invoke-virtual {p1}, Ljava/lang/ThreadLocal;->remove()V
:cond_7f
goto :goto_81
:goto_80
throw v2
:goto_81
goto :goto_80
.end method
.method public getAdapter(Ljava/lang/Class;)Lcom/google/gson/TypeAdapter;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TT;>;)",
"Lcom/google/gson/TypeAdapter<",
"TT;>;"
}
.end annotation
.line 452
invoke-static {p1}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/Class;)Lcom/google/gson/reflect/TypeToken;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/google/gson/Gson;->getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
move-result-object p1
return-object p1
.end method
.method public getDelegateAdapter(Lcom/google/gson/TypeAdapterFactory;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/google/gson/TypeAdapterFactory;",
"Lcom/google/gson/reflect/TypeToken<",
"TT;>;)",
"Lcom/google/gson/TypeAdapter<",
"TT;>;"
}
.end annotation
.line 427
iget-object v0, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result v0
const/4 v1, 0x1
xor-int/2addr v0, v1
.line 429
iget-object v2, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List;
invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
:cond_e
:goto_e
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_27
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/google/gson/TypeAdapterFactory;
if-nez v0, :cond_20
if-ne v3, p1, :cond_e
const/4 v0, 0x1
goto :goto_e
.line 437
:cond_20
invoke-interface {v3, p0, p2}, Lcom/google/gson/TypeAdapterFactory;->create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
move-result-object v3
if-eqz v3, :cond_e
return-object v3
.line 442
:cond_27
new-instance p1, Ljava/lang/IllegalArgumentException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "GSON cannot serialize "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
goto :goto_3f
:goto_3e
throw p1
:goto_3f
goto :goto_3e
.end method
.method public toJson(Lcom/google/gson/JsonElement;)Ljava/lang/String;
.registers 3
.line 618
new-instance v0, Ljava/io/StringWriter;
invoke-direct {v0}, Ljava/io/StringWriter;-><init>()V
.line 619
invoke-virtual {p0, p1, v0}, Lcom/google/gson/Gson;->toJson(Lcom/google/gson/JsonElement;Ljava/lang/Appendable;)V
.line 620
invoke-virtual {v0}, Ljava/io/StringWriter;->toString()Ljava/lang/String;
move-result-object p1
return-object p1
.end method
.method public toJson(Ljava/lang/Object;)Ljava/lang/String;
.registers 3
if-nez p1, :cond_9
.line 512
sget-object p1, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull;
invoke-virtual {p0, p1}, Lcom/google/gson/Gson;->toJson(Lcom/google/gson/JsonElement;)Ljava/lang/String;
move-result-object p1
return-object p1
.line 514
:cond_9
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {p0, p1, v0}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/String;
move-result-object p1
return-object p1
.end method
.method public toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/String;
.registers 4
.line 533
new-instance v0, Ljava/io/StringWriter;
invoke-direct {v0}, Ljava/io/StringWriter;-><init>()V
.line 534
invoke-virtual {p0, p1, p2, v0}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/Appendable;)V
.line 535
invoke-virtual {v0}, Ljava/io/StringWriter;->toString()Ljava/lang/String;
move-result-object p1
return-object p1
.end method
.method public toJson(Lcom/google/gson/JsonElement;Lcom/google/gson/stream/JsonWriter;)V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/gson/JsonIOException;
}
.end annotation
.line 661
invoke-virtual {p2}, Lcom/google/gson/stream/JsonWriter;->isLenient()Z
move-result v0
const/4 v1, 0x1
.line 662
invoke-virtual {p2, v1}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V
.line 663
invoke-virtual {p2}, Lcom/google/gson/stream/JsonWriter;->isHtmlSafe()Z
move-result v1
.line 664
iget-boolean v2, p0, Lcom/google/gson/Gson;->htmlSafe:Z
invoke-virtual {p2, v2}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V
.line 665
invoke-virtual {p2}, Lcom/google/gson/stream/JsonWriter;->getSerializeNulls()Z
move-result v2
.line 666
iget-boolean v3, p0, Lcom/google/gson/Gson;->serializeNulls:Z
invoke-virtual {p2, v3}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V
.line 668
:try_start_1a
invoke-static {p1, p2}, Lcom/google/gson/internal/Streams;->write(Lcom/google/gson/JsonElement;Lcom/google/gson/stream/JsonWriter;)V
:try_end_1d
.catch Ljava/io/IOException; {:try_start_1a .. :try_end_1d} :catch_29
.catchall {:try_start_1a .. :try_end_1d} :catchall_27
.line 672
invoke-virtual {p2, v0}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V
.line 673
invoke-virtual {p2, v1}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V
.line 674
invoke-virtual {p2, v2}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V
return-void
:catchall_27
move-exception p1
goto :goto_30
:catch_29
move-exception p1
.line 670
:try_start_2a
new-instance v3, Lcom/google/gson/JsonIOException;
invoke-direct {v3, p1}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/Throwable;)V
throw v3
:try_end_30
.catchall {:try_start_2a .. :try_end_30} :catchall_27
.line 672
:goto_30
invoke-virtual {p2, v0}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V
.line 673
invoke-virtual {p2, v1}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V
.line 674
invoke-virtual {p2, v2}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V
throw p1
.end method
.method public toJson(Lcom/google/gson/JsonElement;Ljava/lang/Appendable;)V
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/gson/JsonIOException;
}
.end annotation
.line 633
:try_start_0
invoke-static {p2}, Lcom/google/gson/internal/Streams;->writerForAppendable(Ljava/lang/Appendable;)Ljava/io/Writer;
move-result-object p2
invoke-direct {p0, p2}, Lcom/google/gson/Gson;->newJsonWriter(Ljava/io/Writer;)Lcom/google/gson/stream/JsonWriter;
move-result-object p2
.line 634
invoke-virtual {p0, p1, p2}, Lcom/google/gson/Gson;->toJson(Lcom/google/gson/JsonElement;Lcom/google/gson/stream/JsonWriter;)V
:try_end_b
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_b} :catch_c
return-void
:catch_c
move-exception p1
.line 636
new-instance p2, Ljava/lang/RuntimeException;
invoke-direct {p2, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw p2
.end method
.method public toJson(Ljava/lang/Object;Ljava/lang/Appendable;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/gson/JsonIOException;
}
.end annotation
if-eqz p1, :cond_a
.line 554
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {p0, p1, v0, p2}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/Appendable;)V
goto :goto_f
.line 556
:cond_a
sget-object p1, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull;
invoke-virtual {p0, p1, p2}, Lcom/google/gson/Gson;->toJson(Lcom/google/gson/JsonElement;Ljava/lang/Appendable;)V
:goto_f
return-void
.end method
.method public toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/stream/JsonWriter;)V
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/gson/JsonIOException;
}
.end annotation
.line 592
invoke-static {p2}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
move-result-object p2
invoke-virtual {p0, p2}, Lcom/google/gson/Gson;->getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
move-result-object p2
.line 593
invoke-virtual {p3}, Lcom/google/gson/stream/JsonWriter;->isLenient()Z
move-result v0
const/4 v1, 0x1
.line 594
invoke-virtual {p3, v1}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V
.line 595
invoke-virtual {p3}, Lcom/google/gson/stream/JsonWriter;->isHtmlSafe()Z
move-result v1
.line 596
iget-boolean v2, p0, Lcom/google/gson/Gson;->htmlSafe:Z
invoke-virtual {p3, v2}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V
.line 597
invoke-virtual {p3}, Lcom/google/gson/stream/JsonWriter;->getSerializeNulls()Z
move-result v2
.line 598
iget-boolean v3, p0, Lcom/google/gson/Gson;->serializeNulls:Z
invoke-virtual {p3, v3}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V
.line 600
:try_start_22
invoke-virtual {p2, p3, p1}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V
:try_end_25
.catch Ljava/io/IOException; {:try_start_22 .. :try_end_25} :catch_31
.catchall {:try_start_22 .. :try_end_25} :catchall_2f
.line 604
invoke-virtual {p3, v0}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V
.line 605
invoke-virtual {p3, v1}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V
.line 606
invoke-virtual {p3, v2}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V
return-void
:catchall_2f
move-exception p1
goto :goto_38
:catch_31
move-exception p1
.line 602
:try_start_32
new-instance p2, Lcom/google/gson/JsonIOException;
invoke-direct {p2, p1}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/Throwable;)V
throw p2
:try_end_38
.catchall {:try_start_32 .. :try_end_38} :catchall_2f
.line 604
:goto_38
invoke-virtual {p3, v0}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V
.line 605
invoke-virtual {p3, v1}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V
.line 606
invoke-virtual {p3, v2}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V
throw p1
.end method
.method public toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/Appendable;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/gson/JsonIOException;
}
.end annotation
.line 578
:try_start_0
invoke-static {p3}, Lcom/google/gson/internal/Streams;->writerForAppendable(Ljava/lang/Appendable;)Ljava/io/Writer;
move-result-object p3
invoke-direct {p0, p3}, Lcom/google/gson/Gson;->newJsonWriter(Ljava/io/Writer;)Lcom/google/gson/stream/JsonWriter;
move-result-object p3
.line 579
invoke-virtual {p0, p1, p2, p3}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/stream/JsonWriter;)V
:try_end_b
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_b} :catch_c
return-void
:catch_c
move-exception p1
.line 581
new-instance p2, Lcom/google/gson/JsonIOException;
invoke-direct {p2, p1}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/Throwable;)V
throw p2
.end method
.method public toJsonTree(Ljava/lang/Object;)Lcom/google/gson/JsonElement;
.registers 3
if-nez p1, :cond_5
.line 470
sget-object p1, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull;
return-object p1
.line 472
:cond_5
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {p0, p1, v0}, Lcom/google/gson/Gson;->toJsonTree(Ljava/lang/Object;Ljava/lang/reflect/Type;)Lcom/google/gson/JsonElement;
move-result-object p1
return-object p1
.end method
.method public toJsonTree(Ljava/lang/Object;Ljava/lang/reflect/Type;)Lcom/google/gson/JsonElement;
.registers 4
.line 492
new-instance v0, Lcom/google/gson/internal/bind/JsonTreeWriter;
invoke-direct {v0}, Lcom/google/gson/internal/bind/JsonTreeWriter;-><init>()V
.line 493
invoke-virtual {p0, p1, p2, v0}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/stream/JsonWriter;)V
.line 494
invoke-virtual {v0}, Lcom/google/gson/internal/bind/JsonTreeWriter;->get()Lcom/google/gson/JsonElement;
move-result-object p1
return-object p1
.end method
.method public toString()Ljava/lang/String;
.registers 3
.line 905
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "{serializeNulls:"
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-boolean v1, p0, Lcom/google/gson/Gson;->serializeNulls:Z
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
const-string v1, "factories:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, ",instanceCreators:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)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