LazilyParsedNumber.smali 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. .class public final Lcom/google/gson/internal/LazilyParsedNumber;
  2. .super Ljava/lang/Number;
  3. .source "LazilyParsedNumber.java"
  4. # instance fields
  5. .field private final value:Ljava/lang/String;
  6. # direct methods
  7. .method public constructor <init>(Ljava/lang/String;)V
  8. .locals 0
  9. .param p1, "value" # Ljava/lang/String;
  10. .line 30
  11. invoke-direct {p0}, Ljava/lang/Number;-><init>()V
  12. .line 31
  13. iput-object p1, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String;
  14. .line 32
  15. return-void
  16. .end method
  17. .method private writeReplace()Ljava/lang/Object;
  18. .locals 2
  19. .annotation system Ldalvik/annotation/Throws;
  20. value = {
  21. Ljava/io/ObjectStreamException;
  22. }
  23. .end annotation
  24. .line 77
  25. new-instance v0, Ljava/math/BigDecimal;
  26. iget-object v1, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String;
  27. invoke-direct {v0, v1}, Ljava/math/BigDecimal;-><init>(Ljava/lang/String;)V
  28. return-object v0
  29. .end method
  30. # virtual methods
  31. .method public doubleValue()D
  32. .locals 2
  33. .line 63
  34. iget-object v0, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String;
  35. invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
  36. move-result-wide v0
  37. return-wide v0
  38. .end method
  39. .method public equals(Ljava/lang/Object;)Z
  40. .locals 5
  41. .param p1, "obj" # Ljava/lang/Object;
  42. .line 87
  43. const/4 v0, 0x1
  44. if-ne p0, p1, :cond_0
  45. .line 88
  46. return v0
  47. .line 90
  48. :cond_0
  49. instance-of v1, p1, Lcom/google/gson/internal/LazilyParsedNumber;
  50. const/4 v2, 0x0
  51. if-eqz v1, :cond_3
  52. .line 91
  53. move-object v1, p1
  54. check-cast v1, Lcom/google/gson/internal/LazilyParsedNumber;
  55. .line 92
  56. .local v1, "other":Lcom/google/gson/internal/LazilyParsedNumber;
  57. iget-object v3, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String;
  58. iget-object v4, v1, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String;
  59. if-eq v3, v4, :cond_2
  60. invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  61. move-result v3
  62. if-eqz v3, :cond_1
  63. goto :goto_0
  64. :cond_1
  65. const/4 v0, 0x0
  66. :cond_2
  67. :goto_0
  68. return v0
  69. .line 94
  70. .end local v1 # "other":Lcom/google/gson/internal/LazilyParsedNumber;
  71. :cond_3
  72. return v2
  73. .end method
  74. .method public floatValue()F
  75. .locals 1
  76. .line 58
  77. iget-object v0, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String;
  78. invoke-static {v0}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F
  79. move-result v0
  80. return v0
  81. .end method
  82. .method public hashCode()I
  83. .locals 1
  84. .line 82
  85. iget-object v0, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String;
  86. invoke-virtual {v0}, Ljava/lang/String;->hashCode()I
  87. move-result v0
  88. return v0
  89. .end method
  90. .method public intValue()I
  91. .locals 4
  92. .line 37
  93. :try_start_0
  94. iget-object v0, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String;
  95. invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
  96. move-result v0
  97. :try_end_0
  98. .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0
  99. return v0
  100. .line 38
  101. :catch_0
  102. move-exception v0
  103. .line 40
  104. .local v0, "e":Ljava/lang/NumberFormatException;
  105. :try_start_1
  106. iget-object v1, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String;
  107. invoke-static {v1}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
  108. move-result-wide v1
  109. :try_end_1
  110. .catch Ljava/lang/NumberFormatException; {:try_start_1 .. :try_end_1} :catch_1
  111. long-to-int v2, v1
  112. return v2
  113. .line 41
  114. :catch_1
  115. move-exception v1
  116. .line 42
  117. .local v1, "nfe":Ljava/lang/NumberFormatException;
  118. new-instance v2, Ljava/math/BigDecimal;
  119. iget-object v3, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String;
  120. invoke-direct {v2, v3}, Ljava/math/BigDecimal;-><init>(Ljava/lang/String;)V
  121. invoke-virtual {v2}, Ljava/math/BigDecimal;->intValue()I
  122. move-result v2
  123. return v2
  124. .end method
  125. .method public longValue()J
  126. .locals 3
  127. .line 50
  128. :try_start_0
  129. iget-object v0, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String;
  130. invoke-static {v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
  131. move-result-wide v0
  132. :try_end_0
  133. .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0
  134. return-wide v0
  135. .line 51
  136. :catch_0
  137. move-exception v0
  138. .line 52
  139. .local v0, "e":Ljava/lang/NumberFormatException;
  140. new-instance v1, Ljava/math/BigDecimal;
  141. iget-object v2, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String;
  142. invoke-direct {v1, v2}, Ljava/math/BigDecimal;-><init>(Ljava/lang/String;)V
  143. invoke-virtual {v1}, Ljava/math/BigDecimal;->longValue()J
  144. move-result-wide v1
  145. return-wide v1
  146. .end method
  147. .method public toString()Ljava/lang/String;
  148. .locals 1
  149. .line 68
  150. iget-object v0, p0, Lcom/google/gson/internal/LazilyParsedNumber;->value:Ljava/lang/String;
  151. return-object v0
  152. .end method