BooleanCodec.smali
4.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
.class public final Lnet/json/fastjson/serializer/BooleanCodec;
.super Ljava/lang/Object;
.source "BooleanCodec.java"
# interfaces
.implements Lnet/json/fastjson/serializer/ObjectSerializer;
.implements Lnet/json/fastjson/parser/deserializer/ObjectDeserializer;
# static fields
.field public static final instance:Lnet/json/fastjson/serializer/BooleanCodec;
# direct methods
.method static constructor <clinit>()V
.locals 1
.line 1
new-instance v0, Lnet/json/fastjson/serializer/BooleanCodec;
invoke-direct {v0}, Lnet/json/fastjson/serializer/BooleanCodec;-><init>()V
sput-object v0, Lnet/json/fastjson/serializer/BooleanCodec;->instance:Lnet/json/fastjson/serializer/BooleanCodec;
return-void
.end method
.method private constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public deserialze(Lnet/json/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lnet/json/fastjson/parser/DefaultJSONParser;",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Object;",
")TT;"
}
.end annotation
.line 1
iget-object p2, p1, Lnet/json/fastjson/parser/DefaultJSONParser;->lexer:Lnet/json/fastjson/parser/JSONLexer;
.line 4
invoke-virtual {p2}, Lnet/json/fastjson/parser/JSONLexer;->token()I
move-result p3
const/16 v0, 0x10
const/4 v1, 0x6
if-ne p3, v1, :cond_0
.line 6
invoke-virtual {p2, v0}, Lnet/json/fastjson/parser/JSONLexer;->nextToken(I)V
.line 7
sget-object p1, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
goto :goto_0
:cond_0
const/4 v1, 0x7
if-ne p3, v1, :cond_1
.line 9
invoke-virtual {p2, v0}, Lnet/json/fastjson/parser/JSONLexer;->nextToken(I)V
.line 10
sget-object p1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
goto :goto_0
:cond_1
const/4 v1, 0x2
if-ne p3, v1, :cond_3
.line 12
invoke-virtual {p2}, Lnet/json/fastjson/parser/JSONLexer;->intValue()I
move-result p1
.line 13
invoke-virtual {p2, v0}, Lnet/json/fastjson/parser/JSONLexer;->nextToken(I)V
const/4 p2, 0x1
if-ne p1, p2, :cond_2
.line 16
sget-object p1, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
goto :goto_0
.line 18
:cond_2
sget-object p1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
goto :goto_0
.line 21
:cond_3
invoke-virtual {p1}, Lnet/json/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object p1
if-nez p1, :cond_4
const/4 p1, 0x0
return-object p1
.line 27
:cond_4
invoke-static {p1}, Lnet/json/fastjson/util/TypeUtils;->castToBoolean(Ljava/lang/Object;)Ljava/lang/Boolean;
move-result-object p1
:goto_0
return-object p1
.end method
.method public write(Lnet/json/fastjson/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;)V
.locals 0
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object p1, p1, Lnet/json/fastjson/serializer/JSONSerializer;->out:Lnet/json/fastjson/serializer/SerializeWriter;
.line 3
check-cast p2, Ljava/lang/Boolean;
const-string p3, "false"
if-nez p2, :cond_1
.line 5
iget p2, p1, Lnet/json/fastjson/serializer/SerializeWriter;->features:I
sget-object p4, Lnet/json/fastjson/serializer/SerializerFeature;->WriteNullBooleanAsFalse:Lnet/json/fastjson/serializer/SerializerFeature;
iget p4, p4, Lnet/json/fastjson/serializer/SerializerFeature;->mask:I
and-int/2addr p2, p4
if-eqz p2, :cond_0
.line 6
invoke-virtual {p1, p3}, Lnet/json/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V
goto :goto_0
.line 8
:cond_0
invoke-virtual {p1}, Lnet/json/fastjson/serializer/SerializeWriter;->writeNull()V
:goto_0
return-void
.line 13
:cond_1
invoke-virtual {p2}, Ljava/lang/Boolean;->booleanValue()Z
move-result p2
if-eqz p2, :cond_2
const-string p2, "true"
.line 14
invoke-virtual {p1, p2}, Lnet/json/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V
goto :goto_1
.line 16
:cond_2
invoke-virtual {p1, p3}, Lnet/json/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V
:goto_1
return-void
.end method