.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 public constructor (Ljava/io/Writer;)V .locals 1 .line 21 invoke-direct {p0}, Ljava/lang/Object;->()V .line 22 new-instance v0, Lcom/alibaba/fastjson/serializer/SerializeWriter; invoke-direct {v0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->(Ljava/io/Writer;)V iput-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter; .line 23 new-instance p1, Lcom/alibaba/fastjson/serializer/JSONSerializer; iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter; invoke-direct {p1, v0}, Lcom/alibaba/fastjson/serializer/JSONSerializer;->(Lcom/alibaba/fastjson/serializer/SerializeWriter;)V iput-object p1, p0, Lcom/alibaba/fastjson/JSONWriter;->serializer:Lcom/alibaba/fastjson/serializer/JSONSerializer; return-void .end method .method private afterWriter()V .locals 2 .line 149 iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext; if-nez v0, :cond_0 return-void .line 153 :cond_0 iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext; iget v0, v0, Lcom/alibaba/fastjson/JSONStreamContext;->state:I const/4 v1, -0x1 packed-switch v0, :pswitch_data_0 goto :goto_0 :pswitch_0 const/16 v0, 0x3ed goto :goto_1 :pswitch_1 const/16 v0, 0x3eb goto :goto_1 :pswitch_2 const/16 v0, 0x3ea goto :goto_1 :goto_0 :pswitch_3 const/4 v0, -0x1 :goto_1 if-eq v0, v1, :cond_1 .line 173 iget-object v1, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext; iput v0, v1, Lcom/alibaba/fastjson/JSONStreamContext;->state:I :cond_1 return-void nop :pswitch_data_0 .packed-switch 0x3e9 :pswitch_2 :pswitch_1 :pswitch_2 :pswitch_0 :pswitch_3 .end packed-switch .end method .method private beforeWrite()V .locals 2 .line 126 iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext; if-nez v0, :cond_0 return-void .line 130 :cond_0 iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext; iget v0, v0, Lcom/alibaba/fastjson/JSONStreamContext;->state:I const/16 v1, 0x2c packed-switch v0, :pswitch_data_0 goto :goto_0 .line 141 :pswitch_0 iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter; invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_0 .line 138 :pswitch_1 iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter; invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_0 .line 135 :pswitch_2 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(I)V :goto_0 :pswitch_3 return-void nop :pswitch_data_0 .packed-switch 0x3e9 :pswitch_3 :pswitch_2 :pswitch_1 :pswitch_3 :pswitch_0 .end packed-switch .end method .method private beginStructure()V .locals 4 .line 75 iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext; iget v0, v0, Lcom/alibaba/fastjson/JSONStreamContext;->state:I .line 76 iget-object v1, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext; iget v1, v1, Lcom/alibaba/fastjson/JSONStreamContext;->state:I packed-switch v1, :pswitch_data_0 .line 88 :pswitch_0 new-instance v1, Lcom/alibaba/fastjson/JSONException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()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 v0 invoke-direct {v1, v0}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v1 .line 81 :pswitch_1 iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter; const/16 v1, 0x2c invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_0 .line 78 :pswitch_2 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(I)V :goto_0 :pswitch_3 return-void :pswitch_data_0 .packed-switch 0x3e9 :pswitch_3 :pswitch_2 :pswitch_0 :pswitch_3 :pswitch_1 .end packed-switch .end method .method private endStructure()V .locals 2 .line 98 iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext; iget-object v0, v0, Lcom/alibaba/fastjson/JSONStreamContext;->parent:Lcom/alibaba/fastjson/JSONStreamContext; iput-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext; .line 100 iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext; if-nez v0, :cond_0 return-void .line 105 :cond_0 iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext; iget v0, v0, Lcom/alibaba/fastjson/JSONStreamContext;->state:I const/4 v1, -0x1 packed-switch v0, :pswitch_data_0 :pswitch_0 goto :goto_0 :pswitch_1 const/16 v0, 0x3ed goto :goto_1 :pswitch_2 const/16 v0, 0x3eb goto :goto_1 :pswitch_3 const/16 v0, 0x3ea goto :goto_1 :goto_0 :pswitch_4 const/4 v0, -0x1 :goto_1 if-eq v0, v1, :cond_1 .line 121 iget-object v1, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext; iput v0, v1, Lcom/alibaba/fastjson/JSONStreamContext;->state:I :cond_1 return-void nop :pswitch_data_0 .packed-switch 0x3e9 :pswitch_3 :pswitch_2 :pswitch_0 :pswitch_1 :pswitch_4 .end packed-switch .end method # virtual methods .method public close()V .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 182 iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter; invoke-virtual {v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->close()V return-void .end method .method public config(Lcom/alibaba/fastjson/serializer/SerializerFeature;Z)V .locals 1 .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 return-void .end method .method public endArray()V .locals 2 .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(I)V .line 94 invoke-direct {p0}, Lcom/alibaba/fastjson/JSONWriter;->endStructure()V return-void .end method .method public endObject()V .locals 2 .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(I)V .line 40 invoke-direct {p0}, Lcom/alibaba/fastjson/JSONWriter;->endStructure()V return-void .end method .method public flush()V .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 178 iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->writer:Lcom/alibaba/fastjson/serializer/SerializeWriter; invoke-virtual {v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->flush()V return-void .end method .method public startArray()V .locals 3 .line 66 iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext; if-eqz v0, :cond_0 .line 67 invoke-direct {p0}, Lcom/alibaba/fastjson/JSONWriter;->beginStructure()V .line 70 :cond_0 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;->(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(I)V return-void .end method .method public startObject()V .locals 3 .line 31 iget-object v0, p0, Lcom/alibaba/fastjson/JSONWriter;->context:Lcom/alibaba/fastjson/JSONStreamContext; if-eqz v0, :cond_0 .line 32 invoke-direct {p0}, Lcom/alibaba/fastjson/JSONWriter;->beginStructure()V .line 34 :cond_0 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;->(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(I)V return-void .end method .method public writeEndArray()V .locals 0 .annotation runtime Ljava/lang/Deprecated; .end annotation .line 202 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONWriter;->endArray()V return-void .end method .method public writeEndObject()V .locals 0 .annotation runtime Ljava/lang/Deprecated; .end annotation .line 192 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONWriter;->endObject()V return-void .end method .method public writeKey(Ljava/lang/String;)V .locals 0 .line 44 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONWriter;->writeObject(Ljava/lang/String;)V return-void .end method .method public writeObject(Ljava/lang/Object;)V .locals 1 .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 return-void .end method .method public writeObject(Ljava/lang/String;)V .locals 1 .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 return-void .end method .method public writeStartArray()V .locals 0 .annotation runtime Ljava/lang/Deprecated; .end annotation .line 197 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONWriter;->startArray()V return-void .end method .method public writeStartObject()V .locals 0 .annotation runtime Ljava/lang/Deprecated; .end annotation .line 187 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONWriter;->startObject()V return-void .end method .method public writeValue(Ljava/lang/Object;)V .locals 0 .line 48 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/JSONWriter;->writeObject(Ljava/lang/Object;)V return-void .end method