CollectionTypeAdapterFactory$Adapter.smali 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. .class final Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;
  2. .super Lcom/google/gson/TypeAdapter;
  3. .source ""
  4. # annotations
  5. .annotation system Ldalvik/annotation/EnclosingClass;
  6. value = Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory;
  7. .end annotation
  8. .annotation system Ldalvik/annotation/InnerClass;
  9. accessFlags = 0x1a
  10. name = "Adapter"
  11. .end annotation
  12. .annotation system Ldalvik/annotation/Signature;
  13. value = {
  14. "<E:",
  15. "Ljava/lang/Object;",
  16. ">",
  17. "Lcom/google/gson/TypeAdapter<",
  18. "Ljava/util/Collection<",
  19. "TE;>;>;"
  20. }
  21. .end annotation
  22. # instance fields
  23. .field private final constructor:Lcom/google/gson/internal/ObjectConstructor;
  24. .annotation system Ldalvik/annotation/Signature;
  25. value = {
  26. "Lcom/google/gson/internal/ObjectConstructor<",
  27. "+",
  28. "Ljava/util/Collection<",
  29. "TE;>;>;"
  30. }
  31. .end annotation
  32. .end field
  33. .field private final elementTypeAdapter:Lcom/google/gson/TypeAdapter;
  34. .annotation system Ldalvik/annotation/Signature;
  35. value = {
  36. "Lcom/google/gson/TypeAdapter<",
  37. "TE;>;"
  38. }
  39. .end annotation
  40. .end field
  41. # direct methods
  42. .method public constructor <init>(Lcom/google/gson/Gson;Ljava/lang/reflect/Type;Lcom/google/gson/TypeAdapter;Lcom/google/gson/internal/ObjectConstructor;)V
  43. .locals 1
  44. .annotation system Ldalvik/annotation/Signature;
  45. value = {
  46. "(",
  47. "Lcom/google/gson/Gson;",
  48. "Ljava/lang/reflect/Type;",
  49. "Lcom/google/gson/TypeAdapter<",
  50. "TE;>;",
  51. "Lcom/google/gson/internal/ObjectConstructor<",
  52. "+",
  53. "Ljava/util/Collection<",
  54. "TE;>;>;)V"
  55. }
  56. .end annotation
  57. invoke-direct {p0}, Lcom/google/gson/TypeAdapter;-><init>()V
  58. new-instance v0, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;
  59. invoke-direct {v0, p1, p3, p2}, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;-><init>(Lcom/google/gson/Gson;Lcom/google/gson/TypeAdapter;Ljava/lang/reflect/Type;)V
  60. iput-object v0, p0, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;->elementTypeAdapter:Lcom/google/gson/TypeAdapter;
  61. iput-object p4, p0, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;->constructor:Lcom/google/gson/internal/ObjectConstructor;
  62. return-void
  63. .end method
  64. # virtual methods
  65. .method public bridge synthetic read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object;
  66. .locals 0
  67. .annotation system Ldalvik/annotation/Throws;
  68. value = {
  69. Ljava/io/IOException;
  70. }
  71. .end annotation
  72. invoke-virtual {p0, p1}, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/util/Collection;
  73. move-result-object p1
  74. return-object p1
  75. .end method
  76. .method public read(Lcom/google/gson/stream/JsonReader;)Ljava/util/Collection;
  77. .locals 2
  78. .annotation system Ldalvik/annotation/Signature;
  79. value = {
  80. "(",
  81. "Lcom/google/gson/stream/JsonReader;",
  82. ")",
  83. "Ljava/util/Collection<",
  84. "TE;>;"
  85. }
  86. .end annotation
  87. .annotation system Ldalvik/annotation/Throws;
  88. value = {
  89. Ljava/io/IOException;
  90. }
  91. .end annotation
  92. invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken;
  93. move-result-object v0
  94. sget-object v1, Lcom/google/gson/stream/JsonToken;->NULL:Lcom/google/gson/stream/JsonToken;
  95. if-ne v0, v1, :cond_0
  96. invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->nextNull()V
  97. const/4 p1, 0x0
  98. return-object p1
  99. :cond_0
  100. iget-object v0, p0, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;->constructor:Lcom/google/gson/internal/ObjectConstructor;
  101. invoke-interface {v0}, Lcom/google/gson/internal/ObjectConstructor;->construct()Ljava/lang/Object;
  102. move-result-object v0
  103. check-cast v0, Ljava/util/Collection;
  104. invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->beginArray()V
  105. :goto_0
  106. invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->hasNext()Z
  107. move-result v1
  108. if-eqz v1, :cond_1
  109. iget-object v1, p0, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;->elementTypeAdapter:Lcom/google/gson/TypeAdapter;
  110. invoke-virtual {v1, p1}, Lcom/google/gson/TypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object;
  111. move-result-object v1
  112. invoke-interface {v0, v1}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
  113. goto :goto_0
  114. :cond_1
  115. invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->endArray()V
  116. return-object v0
  117. .end method
  118. .method public bridge synthetic write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V
  119. .locals 0
  120. .annotation system Ldalvik/annotation/Throws;
  121. value = {
  122. Ljava/io/IOException;
  123. }
  124. .end annotation
  125. check-cast p2, Ljava/util/Collection;
  126. invoke-virtual {p0, p1, p2}, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Collection;)V
  127. return-void
  128. .end method
  129. .method public write(Lcom/google/gson/stream/JsonWriter;Ljava/util/Collection;)V
  130. .locals 2
  131. .annotation system Ldalvik/annotation/Signature;
  132. value = {
  133. "(",
  134. "Lcom/google/gson/stream/JsonWriter;",
  135. "Ljava/util/Collection<",
  136. "TE;>;)V"
  137. }
  138. .end annotation
  139. .annotation system Ldalvik/annotation/Throws;
  140. value = {
  141. Ljava/io/IOException;
  142. }
  143. .end annotation
  144. if-nez p2, :cond_0
  145. invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->nullValue()Lcom/google/gson/stream/JsonWriter;
  146. return-void
  147. :cond_0
  148. invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->beginArray()Lcom/google/gson/stream/JsonWriter;
  149. invoke-interface {p2}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
  150. move-result-object p2
  151. :goto_0
  152. invoke-interface {p2}, Ljava/util/Iterator;->hasNext()Z
  153. move-result v0
  154. if-eqz v0, :cond_1
  155. invoke-interface {p2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  156. move-result-object v0
  157. iget-object v1, p0, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory$Adapter;->elementTypeAdapter:Lcom/google/gson/TypeAdapter;
  158. invoke-virtual {v1, p1, v0}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V
  159. goto :goto_0
  160. :cond_1
  161. invoke-virtual {p1}, Lcom/google/gson/stream/JsonWriter;->endArray()Lcom/google/gson/stream/JsonWriter;
  162. return-void
  163. .end method