JSONWriter.smali
.class public Lcom/alibaba/fastjson/JSONWriter;
.super Ljava/lang/Object;
.source "JSONWriter.java"
# interfaces
.implements Ljava/io/Closeable;
.implements Ljava/io/Flushable;
# instance fields
.field private context:Lcom/alibaba/fastjson/JSONStreamContext;
.field private serializer:Lcom/alibaba/fastjson/serializer/JSONSerializer;
.field private writer:Lcom/alibaba/fastjson/serializer/SerializeWriter;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Ljava/io/Writer;)V
.registers 4
.param p1, "out" # Ljava/io/Writer;
.line 21
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 22
new-instance v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;
invoke-direct {v0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;-><init>(Ljava/io/Writer;)V
iput-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter;
.line 23
new-instance v1, Lcom/alibaba/fastjson/serializer/JSONSerializer;
invoke-direct {v1, v0}, Lcom/alibaba/fastjson/serializer/JSONSerializer;-><init>(Lcom/alibaba/fastjson/serializer/SerializeWriter;)V
iput-object v1, p0, Lcom/alibaba/fastjson/JSONWriter;->serializer:Lcom/alibaba/fastjson/serializer/JSONSerializer;
.line 24
return-void
.end method
.method private afterWriter()V
.registers 4
.line 150
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext;
if-nez v0, :cond_5
.line 151
return-void
.line 154
:cond_5
invoke-virtual {v0}, Lcom/alibaba/fastjson/JSONStreamContext;->getState()I
move-result v0
.line 155
.local v0, "state":I
const/4 v1, -0x1
.line 156
.local v1, "newState":I
packed-switch v0, :pswitch_data_20
goto :goto_17
.line 165
:pswitch_e
const/16 v1, 0x3ed
.line 166
goto :goto_17
.line 158
:pswitch_11
const/16 v1, 0x3eb
.line 159
goto :goto_17
.line 162
:pswitch_14
const/16 v1, 0x3ea
.line 163
nop
.line 173
:goto_17
const/4 v2, -0x1
if-eq v1, v2, :cond_1f
.line 174
iget-object v2, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext;
invoke-virtual {v2, v1}, Lcom/alibaba/fastjson/JSONStreamContext;->setState(I)V
.line 176
:cond_1f
return-void
:pswitch_data_20
.packed-switch 0x3e9
:pswitch_14
:pswitch_11
:pswitch_14
:pswitch_e
.end packed-switch
.end method
.method private beforeWrite()V
.registers 4
.line 127
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext;
if-nez v0, :cond_5
.line 128
return-void
.line 131
:cond_5
invoke-virtual {v0}, Lcom/alibaba/fastjson/JSONStreamContext;->getState()I
move-result v0
const/16 v1, 0x3ea
if-eq v0, v1, :cond_24
const/16 v1, 0x3eb
const/16 v2, 0x2c
if-eq v0, v1, :cond_1e
const/16 v1, 0x3ed
if-eq v0, v1, :cond_18
goto :goto_2c
.line 142
:cond_18
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter;
invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(C)V
.line 143
goto :goto_2c
.line 139
:cond_1e
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter;
invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(C)V
.line 140
goto :goto_2c
.line 136
:cond_24
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter;
const/16 v1, 0x3a
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(C)V
.line 137
nop
.line 147
:goto_2c
return-void
.end method
.method private beginStructure()V
.registers 5
.line 75
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext;
invoke-virtual {v0}, Lcom/alibaba/fastjson/JSONStreamContext;->getState()I
move-result v0
.line 76
.local v0, "state":I
packed-switch v0, :pswitch_data_34
.line 88
:pswitch_9
new-instance v1, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "illegal state : "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v1
.line 81
:pswitch_20
iget-object v1, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter;
const/16 v2, 0x2c
invoke-virtual {v1, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(C)V
.line 82
goto :goto_32
.line 86
:pswitch_28
goto :goto_32
.line 78
:pswitch_29
iget-object v1, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter;
const/16 v2, 0x3a
invoke-virtual {v1, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(C)V
.line 79
goto :goto_32
.line 84
:pswitch_31
nop
.line 90
:goto_32
return-void
nop
:pswitch_data_34
.packed-switch 0x3e9
:pswitch_31
:pswitch_29
:pswitch_9
:pswitch_28
:pswitch_20
.end packed-switch
.end method
.method private endStructure()V
.registers 4
.line 98
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext;
invoke-virtual {v0}, Lcom/alibaba/fastjson/JSONStreamContext;->getParent()Lcom/alibaba/fastjson/JSONStreamContext;
move-result-object v0
iput-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext;
.line 100
if-nez v0, :cond_b
.line 101
return-void
.line 104
:cond_b
invoke-virtual {v0}, Lcom/alibaba/fastjson/JSONStreamContext;->getState()I
move-result v0
.line 105
.local v0, "state":I
const/4 v1, -0x1
.line 106
.local v1, "newState":I
const/16 v2, 0x3e9
if-eq v0, v2, :cond_23
const/16 v2, 0x3ea
if-eq v0, v2, :cond_20
const/16 v2, 0x3ec
if-eq v0, v2, :cond_1d
goto :goto_26
.line 111
:cond_1d
const/16 v1, 0x3ed
.line 112
goto :goto_26
.line 108
:cond_20
const/16 v1, 0x3eb
.line 109
goto :goto_26
.line 116
:cond_23
const/16 v1, 0x3ea
.line 117
nop
.line 121
:goto_26
const/4 v2, -0x1
if-eq v1, v2, :cond_2e
.line 122
iget-object v2, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext;
invoke-virtual {v2, v1}, Lcom/alibaba/fastjson/JSONStreamContext;->setState(I)V
.line 124
:cond_2e
return-void
.end method
# virtual methods
.method public close()V
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 183
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter;
invoke-virtual {v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->close()V
.line 184
return-void
.end method
.method public config(Lcom/alibaba/fastjson/serializer/SerializerFeature;Z)V
.registers 4
.param p1, "feature" # Lcom/alibaba/fastjson/serializer/SerializerFeature;
.param p2, "state" # Z
.line 27
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter;
invoke-virtual {v0, p1, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->config(Lcom/alibaba/fastjson/serializer/SerializerFeature;Z)V
.line 28
return-void
.end method
.method public endArray()V
.registers 3
.line 93
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter;
const/16 v1, 0x5d
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(C)V
.line 94
invoke-direct {p0}, Lcom/alibaba/fastjson/JSONWriter;->endStructure()V
.line 95
return-void
.end method
.method public endObject()V
.registers 3
.line 39
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter;
const/16 v1, 0x7d
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(C)V
.line 40
invoke-direct {p0}, Lcom/alibaba/fastjson/JSONWriter;->endStructure()V
.line 41
return-void
.end method
.method public flush()V
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 179
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter;
invoke-virtual {v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->flush()V
.line 180
return-void
.end method
.method public startArray()V
.registers 4
.line 66
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext;
if-eqz v0, :cond_7
.line 67
invoke-direct {p0}, Lcom/alibaba/fastjson/JSONWriter;->beginStructure()V
.line 70
:cond_7
new-instance v0, Lcom/alibaba/fastjson/JSONStreamContext;
iget-object v1, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext;
const/16 v2, 0x3ec
invoke-direct {v0, v1, v2}, Lcom/alibaba/fastjson/JSONStreamContext;-><init>(Lcom/alibaba/fastjson/JSONStreamContext;I)V
iput-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext;
.line 71
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter;
const/16 v1, 0x5b
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(C)V
.line 72
return-void
.end method
.method public startObject()V
.registers 4
.line 31
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext;
if-eqz v0, :cond_7
.line 32
invoke-direct {p0}, Lcom/alibaba/fastjson/JSONWriter;->beginStructure()V
.line 34
:cond_7
new-instance v0, Lcom/alibaba/fastjson/JSONStreamContext;
iget-object v1, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext;
const/16 v2, 0x3e9
invoke-direct {v0, v1, v2}, Lcom/alibaba/fastjson/JSONStreamContext;-><init>(Lcom/alibaba/fastjson/JSONStreamContext;I)V
iput-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext;
.line 35
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter;
const/16 v1, 0x7b
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(C)V
.line 36
return-void
.end method
.method public writeKey(Ljava/lang/String;)V
.registers 2
.param p1, "key" # Ljava/lang/String;
.line 44
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONWriter;->writeObject(Ljava/lang/String;)V
.line 45
return-void
.end method
.method public writeObject(Ljava/lang/Object;)V
.registers 3
.param p1, "object" # Ljava/lang/Object;
.line 60
invoke-direct {p0}, Lcom/alibaba/fastjson/JSONWriter;->beforeWrite()V
.line 61
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->serializer:Lcom/alibaba/fastjson/serializer/JSONSerializer;
invoke-virtual {v0, p1}, Lcom/alibaba/fastjson/serializer/JSONSerializer;->write(Ljava/lang/Object;)V
.line 62
invoke-direct {p0}, Lcom/alibaba/fastjson/JSONWriter;->afterWriter()V
.line 63
return-void
.end method
.method public writeObject(Ljava/lang/String;)V
.registers 3
.param p1, "object" # Ljava/lang/String;
.line 52
invoke-direct {p0}, Lcom/alibaba/fastjson/JSONWriter;->beforeWrite()V
.line 54
iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->serializer:Lcom/alibaba/fastjson/serializer/JSONSerializer;
invoke-virtual {v0, p1}, Lcom/alibaba/fastjson/serializer/JSONSerializer;->write(Ljava/lang/String;)V
.line 56
invoke-direct {p0}, Lcom/alibaba/fastjson/JSONWriter;->afterWriter()V
.line 57
return-void
.end method
.method public writeValue(Ljava/lang/Object;)V
.registers 2
.param p1, "object" # Ljava/lang/Object;
.line 48
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONWriter;->writeObject(Ljava/lang/Object;)V
.line 49
return-void
.end method