SerialContext.smali
.class public Lcom/alibaba/fastjson/serializer/SerialContext;
.super Ljava/lang/Object;
.source "SerialContext.java"
# instance fields
.field public final features:I
.field public final fieldName:Ljava/lang/Object;
.field public final object:Ljava/lang/Object;
.field public final parent:Lcom/alibaba/fastjson/serializer/SerialContext;
# direct methods
.method public constructor <init>(Lcom/alibaba/fastjson/serializer/SerialContext;Ljava/lang/Object;Ljava/lang/Object;II)V
.registers 6
.line 10
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 11
iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerialContext;->parent:Lcom/alibaba/fastjson/serializer/SerialContext;
.line 12
iput-object p2, p0, Lcom/alibaba/fastjson/serializer/SerialContext;->object:Ljava/lang/Object;
.line 13
iput-object p3, p0, Lcom/alibaba/fastjson/serializer/SerialContext;->fieldName:Ljava/lang/Object;
.line 14
iput p4, p0, Lcom/alibaba/fastjson/serializer/SerialContext;->features:I
return-void
.end method
# virtual methods
.method public getFieldName()Ljava/lang/Object;
.registers 2
.line 97
iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerialContext;->fieldName:Ljava/lang/Object;
return-object v0
.end method
.method public getObject()Ljava/lang/Object;
.registers 2
.line 90
iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerialContext;->object:Ljava/lang/Object;
return-object v0
.end method
.method public getParent()Lcom/alibaba/fastjson/serializer/SerialContext;
.registers 2
.line 83
iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerialContext;->parent:Lcom/alibaba/fastjson/serializer/SerialContext;
return-object v0
.end method
.method public getPath()Ljava/lang/String;
.registers 2
.line 104
invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerialContext;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public toString()Ljava/lang/String;
.registers 2
.line 18
iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerialContext;->parent:Lcom/alibaba/fastjson/serializer/SerialContext;
if-nez v0, :cond_7
const-string v0, "$"
return-object v0
.line 21
:cond_7
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
.line 22
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerialContext;->toString(Ljava/lang/StringBuilder;)V
.line 23
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method protected toString(Ljava/lang/StringBuilder;)V
.registers 14
.line 28
iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerialContext;->parent:Lcom/alibaba/fastjson/serializer/SerialContext;
if-nez v0, :cond_b
const/16 v0, 0x24
.line 29
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto/16 :goto_b6
.line 31
:cond_b
invoke-virtual {v0, p1}, Lcom/alibaba/fastjson/serializer/SerialContext;->toString(Ljava/lang/StringBuilder;)V
.line 32
iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerialContext;->fieldName:Ljava/lang/Object;
if-nez v0, :cond_19
const-string v0, ".null"
.line 33
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto/16 :goto_b6
.line 34
:cond_19
instance-of v0, v0, Ljava/lang/Integer;
if-eqz v0, :cond_34
const/16 v0, 0x5b
.line 35
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 36
iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerialContext;->fieldName:Ljava/lang/Object;
check-cast v0, Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const/16 v0, 0x5d
.line 37
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto/16 :goto_b6
:cond_34
const/16 v0, 0x2e
.line 39
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 41
iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerialContext;->fieldName:Ljava/lang/Object;
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
const/4 v1, 0x0
move v2, v1
.line 43
:goto_41
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v3
const/16 v4, 0x7a
const/16 v5, 0x80
const/16 v6, 0x5a
const/16 v7, 0x61
const/16 v8, 0x39
const/16 v9, 0x41
const/16 v10, 0x30
if-ge v2, v3, :cond_6c
.line 44
invoke-virtual {v0, v2}, Ljava/lang/String;->charAt(I)C
move-result v3
if-lt v3, v10, :cond_5d
if-le v3, v8, :cond_67
:cond_5d
if-lt v3, v9, :cond_61
if-le v3, v6, :cond_67
:cond_61
if-lt v3, v7, :cond_65
if-le v3, v4, :cond_67
:cond_65
if-le v3, v5, :cond_6a
:cond_67
add-int/lit8 v2, v2, 0x1
goto :goto_41
:cond_6a
const/4 v2, 0x1
goto :goto_6d
:cond_6c
move v2, v1
:goto_6d
if-eqz v2, :cond_b3
.line 53
:goto_6f
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v2
if-ge v1, v2, :cond_b6
.line 54
invoke-virtual {v0, v1}, Ljava/lang/String;->charAt(I)C
move-result v2
const/16 v3, 0x5c
if-ne v2, v3, :cond_87
.line 56
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 57
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 58
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_ad
:cond_87
if-lt v2, v10, :cond_8b
if-le v2, v8, :cond_95
:cond_8b
if-lt v2, v9, :cond_8f
if-le v2, v6, :cond_95
:cond_8f
if-lt v2, v7, :cond_93
if-le v2, v4, :cond_95
:cond_93
if-le v2, v5, :cond_99
.line 60
:cond_95
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_b0
:cond_99
const/16 v11, 0x22
if-ne v2, v11, :cond_a7
.line 63
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 64
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 65
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_ad
.line 67
:cond_a7
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 68
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 70
:goto_ad
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:goto_b0
add-int/lit8 v1, v1, 0x1
goto :goto_6f
.line 73
:cond_b3
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_b6
:goto_b6
return-void
.end method