JsonGenerator.smali
.class public abstract Lcom/google/api/client/json/JsonGenerator;
.super Ljava/lang/Object;
# interfaces
.implements Ljava/io/Closeable;
.implements Ljava/io/Flushable;
# direct methods
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private d(ZLjava/lang/Object;)V
.registers 11
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
if-nez p2, :cond_3
return-void
:cond_3
invoke-virtual {p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-static {p2}, Lcom/google/api/client/util/Data;->d(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_12
invoke-virtual {p0}, Lcom/google/api/client/json/JsonGenerator;->k()V
goto/16 :goto_168
:cond_12
instance-of v1, p2, Ljava/lang/String;
if-eqz v1, :cond_1d
check-cast p2, Ljava/lang/String;
invoke-virtual {p0, p2}, Lcom/google/api/client/json/JsonGenerator;->x(Ljava/lang/String;)V
goto/16 :goto_168
:cond_1d
instance-of v1, p2, Ljava/lang/Number;
const/4 v2, 0x1
const/4 v3, 0x0
if-eqz v1, :cond_a7
if-eqz p1, :cond_2e
invoke-virtual {p2}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/google/api/client/json/JsonGenerator;->x(Ljava/lang/String;)V
goto/16 :goto_168
:cond_2e
instance-of p1, p2, Ljava/math/BigDecimal;
if-eqz p1, :cond_39
check-cast p2, Ljava/math/BigDecimal;
invoke-virtual {p0, p2}, Lcom/google/api/client/json/JsonGenerator;->s(Ljava/math/BigDecimal;)V
goto/16 :goto_168
:cond_39
instance-of p1, p2, Ljava/math/BigInteger;
if-eqz p1, :cond_44
check-cast p2, Ljava/math/BigInteger;
invoke-virtual {p0, p2}, Lcom/google/api/client/json/JsonGenerator;->t(Ljava/math/BigInteger;)V
goto/16 :goto_168
:cond_44
instance-of p1, p2, Ljava/lang/Long;
if-eqz p1, :cond_53
check-cast p2, Ljava/lang/Long;
invoke-virtual {p2}, Ljava/lang/Long;->longValue()J
move-result-wide p1
invoke-virtual {p0, p1, p2}, Lcom/google/api/client/json/JsonGenerator;->r(J)V
goto/16 :goto_168
:cond_53
instance-of p1, p2, Ljava/lang/Float;
if-eqz p1, :cond_73
check-cast p2, Ljava/lang/Number;
invoke-virtual {p2}, Ljava/lang/Number;->floatValue()F
move-result p1
invoke-static {p1}, Ljava/lang/Float;->isInfinite(F)Z
move-result p2
if-nez p2, :cond_6a
invoke-static {p1}, Ljava/lang/Float;->isNaN(F)Z
move-result p2
if-nez p2, :cond_6a
goto :goto_6b
:cond_6a
const/4 v2, 0x0
:goto_6b
invoke-static {v2}, Lcom/google/api/client/util/Preconditions;->a(Z)V
invoke-virtual {p0, p1}, Lcom/google/api/client/json/JsonGenerator;->o(F)V
goto/16 :goto_168
:cond_73
instance-of p1, p2, Ljava/lang/Integer;
if-nez p1, :cond_9c
instance-of p1, p2, Ljava/lang/Short;
if-nez p1, :cond_9c
instance-of p1, p2, Ljava/lang/Byte;
if-eqz p1, :cond_80
goto :goto_9c
:cond_80
check-cast p2, Ljava/lang/Number;
invoke-virtual {p2}, Ljava/lang/Number;->doubleValue()D
move-result-wide p1
invoke-static {p1, p2}, Ljava/lang/Double;->isInfinite(D)Z
move-result v0
if-nez v0, :cond_93
invoke-static {p1, p2}, Ljava/lang/Double;->isNaN(D)Z
move-result v0
if-nez v0, :cond_93
goto :goto_94
:cond_93
const/4 v2, 0x0
:goto_94
invoke-static {v2}, Lcom/google/api/client/util/Preconditions;->a(Z)V
invoke-virtual {p0, p1, p2}, Lcom/google/api/client/json/JsonGenerator;->n(D)V
goto/16 :goto_168
:cond_9c
:goto_9c
check-cast p2, Ljava/lang/Number;
invoke-virtual {p2}, Ljava/lang/Number;->intValue()I
move-result p1
invoke-virtual {p0, p1}, Lcom/google/api/client/json/JsonGenerator;->p(I)V
goto/16 :goto_168
:cond_a7
instance-of v1, p2, Ljava/lang/Boolean;
if-eqz v1, :cond_b6
check-cast p2, Ljava/lang/Boolean;
invoke-virtual {p2}, Ljava/lang/Boolean;->booleanValue()Z
move-result p1
invoke-virtual {p0, p1}, Lcom/google/api/client/json/JsonGenerator;->e(Z)V
goto/16 :goto_168
:cond_b6
instance-of v1, p2, Lcom/google/api/client/util/DateTime;
if-eqz v1, :cond_c5
check-cast p2, Lcom/google/api/client/util/DateTime;
invoke-virtual {p2}, Lcom/google/api/client/util/DateTime;->d()Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/google/api/client/json/JsonGenerator;->x(Ljava/lang/String;)V
goto/16 :goto_168
:cond_c5
instance-of v1, p2, Ljava/lang/Iterable;
if-nez v1, :cond_cf
invoke-virtual {v0}, Ljava/lang/Class;->isArray()Z
move-result v1
if-eqz v1, :cond_f5
:cond_cf
instance-of v1, p2, Ljava/util/Map;
if-nez v1, :cond_f5
instance-of v1, p2, Lcom/google/api/client/util/GenericData;
if-nez v1, :cond_f5
invoke-virtual {p0}, Lcom/google/api/client/json/JsonGenerator;->u()V
invoke-static {p2}, Lcom/google/api/client/util/Types;->l(Ljava/lang/Object;)Ljava/lang/Iterable;
move-result-object p2
invoke-interface {p2}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
move-result-object p2
:goto_e2
invoke-interface {p2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_f0
invoke-interface {p2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
invoke-direct {p0, p1, v0}, Lcom/google/api/client/json/JsonGenerator;->d(ZLjava/lang/Object;)V
goto :goto_e2
:cond_f0
invoke-virtual {p0}, Lcom/google/api/client/json/JsonGenerator;->f()V
goto/16 :goto_168
:cond_f5
invoke-virtual {v0}, Ljava/lang/Class;->isEnum()Z
move-result v1
if-eqz v1, :cond_10f
check-cast p2, Ljava/lang/Enum;
invoke-static {p2}, Lcom/google/api/client/util/FieldInfo;->j(Ljava/lang/Enum;)Lcom/google/api/client/util/FieldInfo;
move-result-object p1
invoke-virtual {p1}, Lcom/google/api/client/util/FieldInfo;->e()Ljava/lang/String;
move-result-object p1
if-nez p1, :cond_10b
invoke-virtual {p0}, Lcom/google/api/client/json/JsonGenerator;->k()V
goto :goto_168
:cond_10b
invoke-virtual {p0, p1}, Lcom/google/api/client/json/JsonGenerator;->x(Ljava/lang/String;)V
goto :goto_168
:cond_10f
invoke-virtual {p0}, Lcom/google/api/client/json/JsonGenerator;->v()V
instance-of v1, p2, Ljava/util/Map;
if-eqz v1, :cond_11c
instance-of v1, p2, Lcom/google/api/client/util/GenericData;
if-nez v1, :cond_11c
const/4 v1, 0x1
goto :goto_11d
:cond_11c
const/4 v1, 0x0
:goto_11d
if-eqz v1, :cond_121
const/4 v0, 0x0
goto :goto_125
:cond_121
invoke-static {v0}, Lcom/google/api/client/util/ClassInfo;->e(Ljava/lang/Class;)Lcom/google/api/client/util/ClassInfo;
move-result-object v0
:goto_125
invoke-static {p2}, Lcom/google/api/client/util/Data;->g(Ljava/lang/Object;)Ljava/util/Map;
move-result-object p2
invoke-interface {p2}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object p2
invoke-interface {p2}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object p2
:cond_131
:goto_131
invoke-interface {p2}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-eqz v4, :cond_165
invoke-interface {p2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/util/Map$Entry;
invoke-interface {v4}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v5
if-eqz v5, :cond_131
invoke-interface {v4}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/lang/String;
if-eqz v1, :cond_14d
move v6, p1
goto :goto_15e
:cond_14d
invoke-virtual {v0, v4}, Lcom/google/api/client/util/ClassInfo;->a(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v6
if-eqz v6, :cond_15d
const-class v7, Lcom/google/api/client/json/JsonString;
invoke-virtual {v6, v7}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v6
if-eqz v6, :cond_15d
const/4 v6, 0x1
goto :goto_15e
:cond_15d
const/4 v6, 0x0
:goto_15e
invoke-virtual {p0, v4}, Lcom/google/api/client/json/JsonGenerator;->j(Ljava/lang/String;)V
invoke-direct {p0, v6, v5}, Lcom/google/api/client/json/JsonGenerator;->d(ZLjava/lang/Object;)V
goto :goto_131
:cond_165
invoke-virtual {p0}, Lcom/google/api/client/json/JsonGenerator;->g()V
:goto_168
return-void
.end method
# virtual methods
.method public abstract a()V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public final b(Ljava/lang/Object;)V
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
const/4 v0, 0x0
invoke-direct {p0, v0, p1}, Lcom/google/api/client/json/JsonGenerator;->d(ZLjava/lang/Object;)V
return-void
.end method
.method public abstract e(Z)V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public abstract f()V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public abstract flush()V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public abstract g()V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public abstract j(Ljava/lang/String;)V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public abstract k()V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public abstract n(D)V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public abstract o(F)V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public abstract p(I)V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public abstract r(J)V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public abstract s(Ljava/math/BigDecimal;)V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public abstract t(Ljava/math/BigInteger;)V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public abstract u()V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public abstract v()V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public abstract x(Ljava/lang/String;)V
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method