PrimitiveArraySerializer.smali
.class public Lcom/alibaba/fastjson/serializer/PrimitiveArraySerializer;
.super Ljava/lang/Object;
.source "PrimitiveArraySerializer.java"
# interfaces
.implements Lcom/alibaba/fastjson/serializer/ObjectSerializer;
# static fields
.field public static instance:Lcom/alibaba/fastjson/serializer/PrimitiveArraySerializer;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 26
new-instance v0, Lcom/alibaba/fastjson/serializer/PrimitiveArraySerializer;
invoke-direct {v0}, Lcom/alibaba/fastjson/serializer/PrimitiveArraySerializer;-><init>()V
sput-object v0, Lcom/alibaba/fastjson/serializer/PrimitiveArraySerializer;->instance:Lcom/alibaba/fastjson/serializer/PrimitiveArraySerializer;
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 24
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public final write(Lcom/alibaba/fastjson/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 29
iget-object p1, p1, Lcom/alibaba/fastjson/serializer/JSONSerializer;->out:Lcom/alibaba/fastjson/serializer/SerializeWriter;
if-nez p2, :cond_a
.line 32
sget-object p2, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteNullListAsEmpty:Lcom/alibaba/fastjson/serializer/SerializerFeature;
invoke-virtual {p1, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull(Lcom/alibaba/fastjson/serializer/SerializerFeature;)V
return-void
.line 36
:cond_a
instance-of p3, p2, [I
const/16 p4, 0x2c
const/16 p5, 0x5d
const/4 v0, 0x0
const/16 v1, 0x5b
if-eqz p3, :cond_30
.line 37
check-cast p2, [I
check-cast p2, [I
.line 38
invoke-virtual {p1, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
.line 39
:goto_1c
array-length p3, p2
if-ge v0, p3, :cond_2c
if-eqz v0, :cond_24
.line 41
invoke-virtual {p1, p4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
.line 43
:cond_24
aget p3, p2, v0
invoke-virtual {p1, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeInt(I)V
add-int/lit8 v0, v0, 0x1
goto :goto_1c
.line 45
:cond_2c
invoke-virtual {p1, p5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
return-void
.line 49
:cond_30
instance-of p3, p2, [S
if-eqz p3, :cond_4f
.line 50
check-cast p2, [S
check-cast p2, [S
.line 51
invoke-virtual {p1, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
.line 52
:goto_3b
array-length p3, p2
if-ge v0, p3, :cond_4b
if-eqz v0, :cond_43
.line 54
invoke-virtual {p1, p4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
.line 56
:cond_43
aget-short p3, p2, v0
invoke-virtual {p1, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeInt(I)V
add-int/lit8 v0, v0, 0x1
goto :goto_3b
.line 58
:cond_4b
invoke-virtual {p1, p5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
return-void
.line 62
:cond_4f
instance-of p3, p2, [J
if-eqz p3, :cond_6e
.line 63
check-cast p2, [J
check-cast p2, [J
.line 65
invoke-virtual {p1, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
.line 66
:goto_5a
array-length p3, p2
if-ge v0, p3, :cond_6a
if-eqz v0, :cond_62
.line 68
invoke-virtual {p1, p4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
.line 70
:cond_62
aget-wide v1, p2, v0
invoke-virtual {p1, v1, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeLong(J)V
add-int/lit8 v0, v0, 0x1
goto :goto_5a
.line 72
:cond_6a
invoke-virtual {p1, p5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
return-void
.line 76
:cond_6e
instance-of p3, p2, [Z
if-eqz p3, :cond_8d
.line 77
check-cast p2, [Z
check-cast p2, [Z
.line 78
invoke-virtual {p1, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
.line 79
:goto_79
array-length p3, p2
if-ge v0, p3, :cond_89
if-eqz v0, :cond_81
.line 81
invoke-virtual {p1, p4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
.line 83
:cond_81
aget-boolean p3, p2, v0
invoke-virtual {p1, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Z)V
add-int/lit8 v0, v0, 0x1
goto :goto_79
.line 85
:cond_89
invoke-virtual {p1, p5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
return-void
.line 89
:cond_8d
instance-of p3, p2, [F
if-eqz p3, :cond_ba
.line 90
check-cast p2, [F
check-cast p2, [F
.line 91
invoke-virtual {p1, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
.line 92
:goto_98
array-length p3, p2
if-ge v0, p3, :cond_b6
if-eqz v0, :cond_a0
.line 94
invoke-virtual {p1, p4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
.line 97
:cond_a0
aget p3, p2, v0
.line 98
invoke-static {p3}, Ljava/lang/Float;->isNaN(F)Z
move-result v1
if-eqz v1, :cond_ac
.line 99
invoke-virtual {p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V
goto :goto_b3
.line 101
:cond_ac
invoke-static {p3}, Ljava/lang/Float;->toString(F)Ljava/lang/String;
move-result-object p3
invoke-virtual {p1, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->append(Ljava/lang/CharSequence;)Lcom/alibaba/fastjson/serializer/SerializeWriter;
:goto_b3
add-int/lit8 v0, v0, 0x1
goto :goto_98
.line 104
:cond_b6
invoke-virtual {p1, p5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
return-void
.line 108
:cond_ba
instance-of p3, p2, [D
if-eqz p3, :cond_e7
.line 109
check-cast p2, [D
check-cast p2, [D
.line 110
invoke-virtual {p1, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
.line 111
:goto_c5
array-length p3, p2
if-ge v0, p3, :cond_e3
if-eqz v0, :cond_cd
.line 113
invoke-virtual {p1, p4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
.line 116
:cond_cd
aget-wide v1, p2, v0
.line 117
invoke-static {v1, v2}, Ljava/lang/Double;->isNaN(D)Z
move-result p3
if-eqz p3, :cond_d9
.line 118
invoke-virtual {p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V
goto :goto_e0
.line 120
:cond_d9
invoke-static {v1, v2}, Ljava/lang/Double;->toString(D)Ljava/lang/String;
move-result-object p3
invoke-virtual {p1, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->append(Ljava/lang/CharSequence;)Lcom/alibaba/fastjson/serializer/SerializeWriter;
:goto_e0
add-int/lit8 v0, v0, 0x1
goto :goto_c5
.line 123
:cond_e3
invoke-virtual {p1, p5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V
return-void
.line 127
:cond_e7
instance-of p3, p2, [B
if-eqz p3, :cond_f3
.line 128
check-cast p2, [B
check-cast p2, [B
.line 129
invoke-virtual {p1, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeByteArray([B)V
return-void
.line 133
:cond_f3
check-cast p2, [C
check-cast p2, [C
.line 134
invoke-virtual {p1, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeString([C)V
return-void
.end method