JsonPrimitive.smali 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086
  1. .class public final Lcom/google/gson/JsonPrimitive;
  2. .super Lcom/google/gson/JsonElement;
  3. .source "JsonPrimitive.java"
  4. # static fields
  5. .field private static final PRIMITIVE_TYPES:[Ljava/lang/Class;
  6. .annotation system Ldalvik/annotation/Signature;
  7. value = {
  8. "[",
  9. "Ljava/lang/Class<",
  10. "*>;"
  11. }
  12. .end annotation
  13. .end field
  14. # instance fields
  15. .field private value:Ljava/lang/Object;
  16. # direct methods
  17. .method static constructor <clinit>()V
  18. .locals 3
  19. .line 35
  20. const/16 v0, 0x10
  21. new-array v0, v0, [Ljava/lang/Class;
  22. sget-object v1, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
  23. const/4 v2, 0x0
  24. aput-object v1, v0, v2
  25. sget-object v1, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
  26. const/4 v2, 0x1
  27. aput-object v1, v0, v2
  28. sget-object v1, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
  29. const/4 v2, 0x2
  30. aput-object v1, v0, v2
  31. sget-object v1, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
  32. const/4 v2, 0x3
  33. aput-object v1, v0, v2
  34. sget-object v1, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
  35. const/4 v2, 0x4
  36. aput-object v1, v0, v2
  37. sget-object v1, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
  38. const/4 v2, 0x5
  39. aput-object v1, v0, v2
  40. sget-object v1, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
  41. const/4 v2, 0x6
  42. aput-object v1, v0, v2
  43. sget-object v1, Ljava/lang/Character;->TYPE:Ljava/lang/Class;
  44. const/4 v2, 0x7
  45. aput-object v1, v0, v2
  46. const-class v1, Ljava/lang/Integer;
  47. const/16 v2, 0x8
  48. aput-object v1, v0, v2
  49. const-class v1, Ljava/lang/Long;
  50. const/16 v2, 0x9
  51. aput-object v1, v0, v2
  52. const-class v1, Ljava/lang/Short;
  53. const/16 v2, 0xa
  54. aput-object v1, v0, v2
  55. const-class v1, Ljava/lang/Float;
  56. const/16 v2, 0xb
  57. aput-object v1, v0, v2
  58. const-class v1, Ljava/lang/Double;
  59. const/16 v2, 0xc
  60. aput-object v1, v0, v2
  61. const-class v1, Ljava/lang/Byte;
  62. const/16 v2, 0xd
  63. aput-object v1, v0, v2
  64. const-class v1, Ljava/lang/Boolean;
  65. const/16 v2, 0xe
  66. aput-object v1, v0, v2
  67. const-class v1, Ljava/lang/Character;
  68. const/16 v2, 0xf
  69. aput-object v1, v0, v2
  70. sput-object v0, Lcom/google/gson/JsonPrimitive;->PRIMITIVE_TYPES:[Ljava/lang/Class;
  71. return-void
  72. .end method
  73. .method public constructor <init>(Ljava/lang/Boolean;)V
  74. .locals 0
  75. .param p1, "bool" # Ljava/lang/Boolean;
  76. .line 46
  77. invoke-direct {p0}, Lcom/google/gson/JsonElement;-><init>()V
  78. .line 47
  79. invoke-virtual {p0, p1}, Lcom/google/gson/JsonPrimitive;->setValue(Ljava/lang/Object;)V
  80. .line 48
  81. return-void
  82. .end method
  83. .method public constructor <init>(Ljava/lang/Character;)V
  84. .locals 0
  85. .param p1, "c" # Ljava/lang/Character;
  86. .line 74
  87. invoke-direct {p0}, Lcom/google/gson/JsonElement;-><init>()V
  88. .line 75
  89. invoke-virtual {p0, p1}, Lcom/google/gson/JsonPrimitive;->setValue(Ljava/lang/Object;)V
  90. .line 76
  91. return-void
  92. .end method
  93. .method public constructor <init>(Ljava/lang/Number;)V
  94. .locals 0
  95. .param p1, "number" # Ljava/lang/Number;
  96. .line 55
  97. invoke-direct {p0}, Lcom/google/gson/JsonElement;-><init>()V
  98. .line 56
  99. invoke-virtual {p0, p1}, Lcom/google/gson/JsonPrimitive;->setValue(Ljava/lang/Object;)V
  100. .line 57
  101. return-void
  102. .end method
  103. .method constructor <init>(Ljava/lang/Object;)V
  104. .locals 0
  105. .param p1, "primitive" # Ljava/lang/Object;
  106. .line 84
  107. invoke-direct {p0}, Lcom/google/gson/JsonElement;-><init>()V
  108. .line 85
  109. invoke-virtual {p0, p1}, Lcom/google/gson/JsonPrimitive;->setValue(Ljava/lang/Object;)V
  110. .line 86
  111. return-void
  112. .end method
  113. .method public constructor <init>(Ljava/lang/String;)V
  114. .locals 0
  115. .param p1, "string" # Ljava/lang/String;
  116. .line 64
  117. invoke-direct {p0}, Lcom/google/gson/JsonElement;-><init>()V
  118. .line 65
  119. invoke-virtual {p0, p1}, Lcom/google/gson/JsonPrimitive;->setValue(Ljava/lang/Object;)V
  120. .line 66
  121. return-void
  122. .end method
  123. .method private static isIntegral(Lcom/google/gson/JsonPrimitive;)Z
  124. .locals 3
  125. .param p0, "primitive" # Lcom/google/gson/JsonPrimitive;
  126. .line 338
  127. iget-object v0, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  128. instance-of v1, v0, Ljava/lang/Number;
  129. const/4 v2, 0x0
  130. if-eqz v1, :cond_2
  131. .line 339
  132. check-cast v0, Ljava/lang/Number;
  133. .line 340
  134. .local v0, "number":Ljava/lang/Number;
  135. instance-of v1, v0, Ljava/math/BigInteger;
  136. if-nez v1, :cond_0
  137. instance-of v1, v0, Ljava/lang/Long;
  138. if-nez v1, :cond_0
  139. instance-of v1, v0, Ljava/lang/Integer;
  140. if-nez v1, :cond_0
  141. instance-of v1, v0, Ljava/lang/Short;
  142. if-nez v1, :cond_0
  143. instance-of v1, v0, Ljava/lang/Byte;
  144. if-eqz v1, :cond_1
  145. :cond_0
  146. const/4 v2, 0x1
  147. :cond_1
  148. return v2
  149. .line 343
  150. .end local v0 # "number":Ljava/lang/Number;
  151. :cond_2
  152. return v2
  153. .end method
  154. .method private static isPrimitiveOrString(Ljava/lang/Object;)Z
  155. .locals 8
  156. .param p0, "target" # Ljava/lang/Object;
  157. .line 278
  158. instance-of v0, p0, Ljava/lang/String;
  159. const/4 v1, 0x1
  160. if-eqz v0, :cond_0
  161. .line 279
  162. return v1
  163. .line 282
  164. :cond_0
  165. invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
  166. move-result-object v0
  167. .line 283
  168. .local v0, "classOfPrimitive":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
  169. sget-object v2, Lcom/google/gson/JsonPrimitive;->PRIMITIVE_TYPES:[Ljava/lang/Class;
  170. array-length v3, v2
  171. const/4 v4, 0x0
  172. const/4 v5, 0x0
  173. :goto_0
  174. if-ge v5, v3, :cond_2
  175. aget-object v6, v2, v5
  176. .line 284
  177. .local v6, "standardPrimitive":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
  178. invoke-virtual {v6, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
  179. move-result v7
  180. if-eqz v7, :cond_1
  181. .line 285
  182. return v1
  183. .line 283
  184. .end local v6 # "standardPrimitive":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
  185. :cond_1
  186. add-int/lit8 v5, v5, 0x1
  187. goto :goto_0
  188. .line 288
  189. :cond_2
  190. return v4
  191. .end method
  192. # virtual methods
  193. .method public bridge synthetic deepCopy()Lcom/google/gson/JsonElement;
  194. .locals 1
  195. .line 33
  196. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->deepCopy()Lcom/google/gson/JsonPrimitive;
  197. move-result-object v0
  198. return-object v0
  199. .end method
  200. .method public deepCopy()Lcom/google/gson/JsonPrimitive;
  201. .locals 0
  202. .line 94
  203. return-object p0
  204. .end method
  205. .method public equals(Ljava/lang/Object;)Z
  206. .locals 8
  207. .param p1, "obj" # Ljava/lang/Object;
  208. .line 310
  209. const/4 v0, 0x1
  210. if-ne p0, p1, :cond_0
  211. .line 311
  212. return v0
  213. .line 313
  214. :cond_0
  215. const/4 v1, 0x0
  216. if-eqz p1, :cond_9
  217. invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
  218. move-result-object v2
  219. invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
  220. move-result-object v3
  221. if-eq v2, v3, :cond_1
  222. goto :goto_3
  223. .line 316
  224. :cond_1
  225. move-object v2, p1
  226. check-cast v2, Lcom/google/gson/JsonPrimitive;
  227. .line 317
  228. .local v2, "other":Lcom/google/gson/JsonPrimitive;
  229. iget-object v3, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  230. if-nez v3, :cond_3
  231. .line 318
  232. iget-object v3, v2, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  233. if-nez v3, :cond_2
  234. goto :goto_0
  235. :cond_2
  236. const/4 v0, 0x0
  237. :goto_0
  238. return v0
  239. .line 320
  240. :cond_3
  241. invoke-static {p0}, Lcom/google/gson/JsonPrimitive;->isIntegral(Lcom/google/gson/JsonPrimitive;)Z
  242. move-result v3
  243. if-eqz v3, :cond_5
  244. invoke-static {v2}, Lcom/google/gson/JsonPrimitive;->isIntegral(Lcom/google/gson/JsonPrimitive;)Z
  245. move-result v3
  246. if-eqz v3, :cond_5
  247. .line 321
  248. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsNumber()Ljava/lang/Number;
  249. move-result-object v3
  250. invoke-virtual {v3}, Ljava/lang/Number;->longValue()J
  251. move-result-wide v3
  252. invoke-virtual {v2}, Lcom/google/gson/JsonPrimitive;->getAsNumber()Ljava/lang/Number;
  253. move-result-object v5
  254. invoke-virtual {v5}, Ljava/lang/Number;->longValue()J
  255. move-result-wide v5
  256. cmp-long v7, v3, v5
  257. if-nez v7, :cond_4
  258. goto :goto_1
  259. :cond_4
  260. const/4 v0, 0x0
  261. :goto_1
  262. return v0
  263. .line 323
  264. :cond_5
  265. iget-object v3, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  266. instance-of v3, v3, Ljava/lang/Number;
  267. if-eqz v3, :cond_8
  268. iget-object v3, v2, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  269. instance-of v3, v3, Ljava/lang/Number;
  270. if-eqz v3, :cond_8
  271. .line 324
  272. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsNumber()Ljava/lang/Number;
  273. move-result-object v3
  274. invoke-virtual {v3}, Ljava/lang/Number;->doubleValue()D
  275. move-result-wide v3
  276. .line 327
  277. .local v3, "a":D
  278. invoke-virtual {v2}, Lcom/google/gson/JsonPrimitive;->getAsNumber()Ljava/lang/Number;
  279. move-result-object v5
  280. invoke-virtual {v5}, Ljava/lang/Number;->doubleValue()D
  281. move-result-wide v5
  282. .line 328
  283. .local v5, "b":D
  284. cmpl-double v7, v3, v5
  285. if-eqz v7, :cond_7
  286. invoke-static {v3, v4}, Ljava/lang/Double;->isNaN(D)Z
  287. move-result v7
  288. if-eqz v7, :cond_6
  289. invoke-static {v5, v6}, Ljava/lang/Double;->isNaN(D)Z
  290. move-result v7
  291. if-eqz v7, :cond_6
  292. goto :goto_2
  293. :cond_6
  294. const/4 v0, 0x0
  295. :cond_7
  296. :goto_2
  297. return v0
  298. .line 330
  299. .end local v3 # "a":D
  300. .end local v5 # "b":D
  301. :cond_8
  302. iget-object v0, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  303. iget-object v1, v2, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  304. invoke-virtual {v0, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
  305. move-result v0
  306. return v0
  307. .line 314
  308. .end local v2 # "other":Lcom/google/gson/JsonPrimitive;
  309. :cond_9
  310. :goto_3
  311. return v1
  312. .end method
  313. .method public getAsBigDecimal()Ljava/math/BigDecimal;
  314. .locals 2
  315. .line 208
  316. iget-object v0, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  317. instance-of v1, v0, Ljava/math/BigDecimal;
  318. if-eqz v1, :cond_0
  319. check-cast v0, Ljava/math/BigDecimal;
  320. goto :goto_0
  321. :cond_0
  322. new-instance v1, Ljava/math/BigDecimal;
  323. invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
  324. move-result-object v0
  325. invoke-direct {v1, v0}, Ljava/math/BigDecimal;-><init>(Ljava/lang/String;)V
  326. move-object v0, v1
  327. :goto_0
  328. return-object v0
  329. .end method
  330. .method public getAsBigInteger()Ljava/math/BigInteger;
  331. .locals 2
  332. .line 219
  333. iget-object v0, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  334. instance-of v1, v0, Ljava/math/BigInteger;
  335. if-eqz v1, :cond_0
  336. check-cast v0, Ljava/math/BigInteger;
  337. goto :goto_0
  338. :cond_0
  339. new-instance v1, Ljava/math/BigInteger;
  340. .line 220
  341. invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
  342. move-result-object v0
  343. invoke-direct {v1, v0}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;)V
  344. move-object v0, v1
  345. .line 219
  346. :goto_0
  347. return-object v0
  348. .end method
  349. .method public getAsBoolean()Z
  350. .locals 1
  351. .line 136
  352. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->isBoolean()Z
  353. move-result v0
  354. if-eqz v0, :cond_0
  355. .line 137
  356. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsBooleanWrapper()Ljava/lang/Boolean;
  357. move-result-object v0
  358. invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
  359. move-result v0
  360. return v0
  361. .line 140
  362. :cond_0
  363. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsString()Ljava/lang/String;
  364. move-result-object v0
  365. invoke-static {v0}, Ljava/lang/Boolean;->parseBoolean(Ljava/lang/String;)Z
  366. move-result v0
  367. return v0
  368. .end method
  369. .method getAsBooleanWrapper()Ljava/lang/Boolean;
  370. .locals 1
  371. .line 126
  372. iget-object v0, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  373. check-cast v0, Ljava/lang/Boolean;
  374. return-object v0
  375. .end method
  376. .method public getAsByte()B
  377. .locals 1
  378. .line 269
  379. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->isNumber()Z
  380. move-result v0
  381. if-eqz v0, :cond_0
  382. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsNumber()Ljava/lang/Number;
  383. move-result-object v0
  384. invoke-virtual {v0}, Ljava/lang/Number;->byteValue()B
  385. move-result v0
  386. goto :goto_0
  387. :cond_0
  388. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsString()Ljava/lang/String;
  389. move-result-object v0
  390. invoke-static {v0}, Ljava/lang/Byte;->parseByte(Ljava/lang/String;)B
  391. move-result v0
  392. :goto_0
  393. return v0
  394. .end method
  395. .method public getAsCharacter()C
  396. .locals 2
  397. .line 274
  398. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsString()Ljava/lang/String;
  399. move-result-object v0
  400. const/4 v1, 0x0
  401. invoke-virtual {v0, v1}, Ljava/lang/String;->charAt(I)C
  402. move-result v0
  403. return v0
  404. .end method
  405. .method public getAsDouble()D
  406. .locals 2
  407. .line 197
  408. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->isNumber()Z
  409. move-result v0
  410. if-eqz v0, :cond_0
  411. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsNumber()Ljava/lang/Number;
  412. move-result-object v0
  413. invoke-virtual {v0}, Ljava/lang/Number;->doubleValue()D
  414. move-result-wide v0
  415. goto :goto_0
  416. :cond_0
  417. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsString()Ljava/lang/String;
  418. move-result-object v0
  419. invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
  420. move-result-wide v0
  421. :goto_0
  422. return-wide v0
  423. .end method
  424. .method public getAsFloat()F
  425. .locals 1
  426. .line 231
  427. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->isNumber()Z
  428. move-result v0
  429. if-eqz v0, :cond_0
  430. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsNumber()Ljava/lang/Number;
  431. move-result-object v0
  432. invoke-virtual {v0}, Ljava/lang/Number;->floatValue()F
  433. move-result v0
  434. goto :goto_0
  435. :cond_0
  436. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsString()Ljava/lang/String;
  437. move-result-object v0
  438. invoke-static {v0}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F
  439. move-result v0
  440. :goto_0
  441. return v0
  442. .end method
  443. .method public getAsInt()I
  444. .locals 1
  445. .line 264
  446. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->isNumber()Z
  447. move-result v0
  448. if-eqz v0, :cond_0
  449. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsNumber()Ljava/lang/Number;
  450. move-result-object v0
  451. invoke-virtual {v0}, Ljava/lang/Number;->intValue()I
  452. move-result v0
  453. goto :goto_0
  454. :cond_0
  455. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsString()Ljava/lang/String;
  456. move-result-object v0
  457. invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
  458. move-result v0
  459. :goto_0
  460. return v0
  461. .end method
  462. .method public getAsLong()J
  463. .locals 2
  464. .line 242
  465. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->isNumber()Z
  466. move-result v0
  467. if-eqz v0, :cond_0
  468. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsNumber()Ljava/lang/Number;
  469. move-result-object v0
  470. invoke-virtual {v0}, Ljava/lang/Number;->longValue()J
  471. move-result-wide v0
  472. goto :goto_0
  473. :cond_0
  474. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsString()Ljava/lang/String;
  475. move-result-object v0
  476. invoke-static {v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
  477. move-result-wide v0
  478. :goto_0
  479. return-wide v0
  480. .end method
  481. .method public getAsNumber()Ljava/lang/Number;
  482. .locals 2
  483. .line 161
  484. iget-object v0, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  485. instance-of v1, v0, Ljava/lang/String;
  486. if-eqz v1, :cond_0
  487. new-instance v1, Lcom/google/gson/internal/LazilyParsedNumber;
  488. check-cast v0, Ljava/lang/String;
  489. invoke-direct {v1, v0}, Lcom/google/gson/internal/LazilyParsedNumber;-><init>(Ljava/lang/String;)V
  490. goto :goto_0
  491. :cond_0
  492. move-object v1, v0
  493. check-cast v1, Ljava/lang/Number;
  494. :goto_0
  495. return-object v1
  496. .end method
  497. .method public getAsShort()S
  498. .locals 1
  499. .line 253
  500. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->isNumber()Z
  501. move-result v0
  502. if-eqz v0, :cond_0
  503. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsNumber()Ljava/lang/Number;
  504. move-result-object v0
  505. invoke-virtual {v0}, Ljava/lang/Number;->shortValue()S
  506. move-result v0
  507. goto :goto_0
  508. :cond_0
  509. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsString()Ljava/lang/String;
  510. move-result-object v0
  511. invoke-static {v0}, Ljava/lang/Short;->parseShort(Ljava/lang/String;)S
  512. move-result v0
  513. :goto_0
  514. return v0
  515. .end method
  516. .method public getAsString()Ljava/lang/String;
  517. .locals 1
  518. .line 180
  519. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->isNumber()Z
  520. move-result v0
  521. if-eqz v0, :cond_0
  522. .line 181
  523. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsNumber()Ljava/lang/Number;
  524. move-result-object v0
  525. invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
  526. move-result-object v0
  527. return-object v0
  528. .line 182
  529. :cond_0
  530. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->isBoolean()Z
  531. move-result v0
  532. if-eqz v0, :cond_1
  533. .line 183
  534. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsBooleanWrapper()Ljava/lang/Boolean;
  535. move-result-object v0
  536. invoke-virtual {v0}, Ljava/lang/Boolean;->toString()Ljava/lang/String;
  537. move-result-object v0
  538. return-object v0
  539. .line 185
  540. :cond_1
  541. iget-object v0, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  542. check-cast v0, Ljava/lang/String;
  543. return-object v0
  544. .end method
  545. .method public hashCode()I
  546. .locals 4
  547. .line 293
  548. iget-object v0, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  549. if-nez v0, :cond_0
  550. .line 294
  551. const/16 v0, 0x1f
  552. return v0
  553. .line 297
  554. :cond_0
  555. invoke-static {p0}, Lcom/google/gson/JsonPrimitive;->isIntegral(Lcom/google/gson/JsonPrimitive;)Z
  556. move-result v0
  557. const/16 v1, 0x20
  558. if-eqz v0, :cond_1
  559. .line 298
  560. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsNumber()Ljava/lang/Number;
  561. move-result-object v0
  562. invoke-virtual {v0}, Ljava/lang/Number;->longValue()J
  563. move-result-wide v2
  564. .line 299
  565. .local v2, "value":J
  566. ushr-long v0, v2, v1
  567. xor-long/2addr v0, v2
  568. long-to-int v1, v0
  569. return v1
  570. .line 301
  571. .end local v2 # "value":J
  572. :cond_1
  573. iget-object v0, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  574. instance-of v2, v0, Ljava/lang/Number;
  575. if-eqz v2, :cond_2
  576. .line 302
  577. invoke-virtual {p0}, Lcom/google/gson/JsonPrimitive;->getAsNumber()Ljava/lang/Number;
  578. move-result-object v0
  579. invoke-virtual {v0}, Ljava/lang/Number;->doubleValue()D
  580. move-result-wide v2
  581. invoke-static {v2, v3}, Ljava/lang/Double;->doubleToLongBits(D)J
  582. move-result-wide v2
  583. .line 303
  584. .restart local v2 # "value":J
  585. ushr-long v0, v2, v1
  586. xor-long/2addr v0, v2
  587. long-to-int v1, v0
  588. return v1
  589. .line 305
  590. .end local v2 # "value":J
  591. :cond_2
  592. invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I
  593. move-result v0
  594. return v0
  595. .end method
  596. .method public isBoolean()Z
  597. .locals 1
  598. .line 116
  599. iget-object v0, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  600. instance-of v0, v0, Ljava/lang/Boolean;
  601. return v0
  602. .end method
  603. .method public isNumber()Z
  604. .locals 1
  605. .line 150
  606. iget-object v0, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  607. instance-of v0, v0, Ljava/lang/Number;
  608. return v0
  609. .end method
  610. .method public isString()Z
  611. .locals 1
  612. .line 170
  613. iget-object v0, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  614. instance-of v0, v0, Ljava/lang/String;
  615. return v0
  616. .end method
  617. .method setValue(Ljava/lang/Object;)V
  618. .locals 2
  619. .param p1, "primitive" # Ljava/lang/Object;
  620. .line 98
  621. instance-of v0, p1, Ljava/lang/Character;
  622. if-eqz v0, :cond_0
  623. .line 101
  624. move-object v0, p1
  625. check-cast v0, Ljava/lang/Character;
  626. invoke-virtual {v0}, Ljava/lang/Character;->charValue()C
  627. move-result v0
  628. .line 102
  629. .local v0, "c":C
  630. invoke-static {v0}, Ljava/lang/String;->valueOf(C)Ljava/lang/String;
  631. move-result-object v1
  632. iput-object v1, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  633. .line 103
  634. .end local v0 # "c":C
  635. goto :goto_2
  636. .line 104
  637. :cond_0
  638. instance-of v0, p1, Ljava/lang/Number;
  639. if-nez v0, :cond_2
  640. .line 105
  641. invoke-static {p1}, Lcom/google/gson/JsonPrimitive;->isPrimitiveOrString(Ljava/lang/Object;)Z
  642. move-result v0
  643. if-eqz v0, :cond_1
  644. goto :goto_0
  645. :cond_1
  646. const/4 v0, 0x0
  647. goto :goto_1
  648. :cond_2
  649. :goto_0
  650. const/4 v0, 0x1
  651. .line 104
  652. :goto_1
  653. invoke-static {v0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V
  654. .line 106
  655. iput-object p1, p0, Lcom/google/gson/JsonPrimitive;->value:Ljava/lang/Object;
  656. .line 108
  657. :goto_2
  658. return-void
  659. .end method