GsonBuilder.smali 31 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069
  1. .class public final Lcom/google/gson/GsonBuilder;
  2. .super Ljava/lang/Object;
  3. .source "GsonBuilder.java"
  4. # instance fields
  5. .field private complexMapKeySerialization:Z
  6. .field private datePattern:Ljava/lang/String;
  7. .field private dateStyle:I
  8. .field private escapeHtmlChars:Z
  9. .field private excluder:Lcom/google/gson/internal/Excluder;
  10. .field private final factories:Ljava/util/List;
  11. .annotation system Ldalvik/annotation/Signature;
  12. value = {
  13. "Ljava/util/List<",
  14. "Lcom/google/gson/TypeAdapterFactory;",
  15. ">;"
  16. }
  17. .end annotation
  18. .end field
  19. .field private fieldNamingPolicy:Lcom/google/gson/FieldNamingStrategy;
  20. .field private generateNonExecutableJson:Z
  21. .field private final hierarchyFactories:Ljava/util/List;
  22. .annotation system Ldalvik/annotation/Signature;
  23. value = {
  24. "Ljava/util/List<",
  25. "Lcom/google/gson/TypeAdapterFactory;",
  26. ">;"
  27. }
  28. .end annotation
  29. .end field
  30. .field private final instanceCreators:Ljava/util/Map;
  31. .annotation system Ldalvik/annotation/Signature;
  32. value = {
  33. "Ljava/util/Map<",
  34. "Ljava/lang/reflect/Type;",
  35. "Lcom/google/gson/InstanceCreator<",
  36. "*>;>;"
  37. }
  38. .end annotation
  39. .end field
  40. .field private lenient:Z
  41. .field private longSerializationPolicy:Lcom/google/gson/LongSerializationPolicy;
  42. .field private prettyPrinting:Z
  43. .field private serializeNulls:Z
  44. .field private serializeSpecialFloatingPointValues:Z
  45. .field private timeStyle:I
  46. # direct methods
  47. .method public constructor <init>()V
  48. .locals 2
  49. .line 104
  50. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  51. .line 79
  52. sget-object v0, Lcom/google/gson/internal/Excluder;->DEFAULT:Lcom/google/gson/internal/Excluder;
  53. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  54. .line 80
  55. sget-object v0, Lcom/google/gson/LongSerializationPolicy;->DEFAULT:Lcom/google/gson/LongSerializationPolicy;
  56. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->longSerializationPolicy:Lcom/google/gson/LongSerializationPolicy;
  57. .line 81
  58. sget-object v0, Lcom/google/gson/FieldNamingPolicy;->IDENTITY:Lcom/google/gson/FieldNamingPolicy;
  59. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->fieldNamingPolicy:Lcom/google/gson/FieldNamingStrategy;
  60. .line 82
  61. new-instance v0, Ljava/util/HashMap;
  62. invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
  63. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->instanceCreators:Ljava/util/Map;
  64. .line 84
  65. new-instance v0, Ljava/util/ArrayList;
  66. invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
  67. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List;
  68. .line 86
  69. new-instance v0, Ljava/util/ArrayList;
  70. invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
  71. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->hierarchyFactories:Ljava/util/List;
  72. .line 87
  73. const/4 v0, 0x0
  74. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->serializeNulls:Z
  75. .line 89
  76. const/4 v1, 0x2
  77. iput v1, p0, Lcom/google/gson/GsonBuilder;->dateStyle:I
  78. .line 90
  79. iput v1, p0, Lcom/google/gson/GsonBuilder;->timeStyle:I
  80. .line 91
  81. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->complexMapKeySerialization:Z
  82. .line 92
  83. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->serializeSpecialFloatingPointValues:Z
  84. .line 93
  85. const/4 v1, 0x1
  86. iput-boolean v1, p0, Lcom/google/gson/GsonBuilder;->escapeHtmlChars:Z
  87. .line 94
  88. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->prettyPrinting:Z
  89. .line 95
  90. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->generateNonExecutableJson:Z
  91. .line 96
  92. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->lenient:Z
  93. .line 105
  94. return-void
  95. .end method
  96. .method constructor <init>(Lcom/google/gson/Gson;)V
  97. .locals 2
  98. .param p1, "gson" # Lcom/google/gson/Gson;
  99. .line 113
  100. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  101. .line 79
  102. sget-object v0, Lcom/google/gson/internal/Excluder;->DEFAULT:Lcom/google/gson/internal/Excluder;
  103. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  104. .line 80
  105. sget-object v0, Lcom/google/gson/LongSerializationPolicy;->DEFAULT:Lcom/google/gson/LongSerializationPolicy;
  106. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->longSerializationPolicy:Lcom/google/gson/LongSerializationPolicy;
  107. .line 81
  108. sget-object v0, Lcom/google/gson/FieldNamingPolicy;->IDENTITY:Lcom/google/gson/FieldNamingPolicy;
  109. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->fieldNamingPolicy:Lcom/google/gson/FieldNamingStrategy;
  110. .line 82
  111. new-instance v0, Ljava/util/HashMap;
  112. invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
  113. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->instanceCreators:Ljava/util/Map;
  114. .line 84
  115. new-instance v0, Ljava/util/ArrayList;
  116. invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
  117. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List;
  118. .line 86
  119. new-instance v0, Ljava/util/ArrayList;
  120. invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
  121. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->hierarchyFactories:Ljava/util/List;
  122. .line 87
  123. const/4 v0, 0x0
  124. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->serializeNulls:Z
  125. .line 89
  126. const/4 v1, 0x2
  127. iput v1, p0, Lcom/google/gson/GsonBuilder;->dateStyle:I
  128. .line 90
  129. iput v1, p0, Lcom/google/gson/GsonBuilder;->timeStyle:I
  130. .line 91
  131. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->complexMapKeySerialization:Z
  132. .line 92
  133. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->serializeSpecialFloatingPointValues:Z
  134. .line 93
  135. const/4 v1, 0x1
  136. iput-boolean v1, p0, Lcom/google/gson/GsonBuilder;->escapeHtmlChars:Z
  137. .line 94
  138. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->prettyPrinting:Z
  139. .line 95
  140. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->generateNonExecutableJson:Z
  141. .line 96
  142. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->lenient:Z
  143. .line 114
  144. iget-object v0, p1, Lcom/google/gson/Gson;->excluder:Lcom/google/gson/internal/Excluder;
  145. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  146. .line 115
  147. iget-object v0, p1, Lcom/google/gson/Gson;->fieldNamingStrategy:Lcom/google/gson/FieldNamingStrategy;
  148. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->fieldNamingPolicy:Lcom/google/gson/FieldNamingStrategy;
  149. .line 116
  150. iget-object v0, p0, Lcom/google/gson/GsonBuilder;->instanceCreators:Ljava/util/Map;
  151. iget-object v1, p1, Lcom/google/gson/Gson;->instanceCreators:Ljava/util/Map;
  152. invoke-interface {v0, v1}, Ljava/util/Map;->putAll(Ljava/util/Map;)V
  153. .line 117
  154. iget-boolean v0, p1, Lcom/google/gson/Gson;->serializeNulls:Z
  155. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->serializeNulls:Z
  156. .line 118
  157. iget-boolean v0, p1, Lcom/google/gson/Gson;->complexMapKeySerialization:Z
  158. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->complexMapKeySerialization:Z
  159. .line 119
  160. iget-boolean v0, p1, Lcom/google/gson/Gson;->generateNonExecutableJson:Z
  161. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->generateNonExecutableJson:Z
  162. .line 120
  163. iget-boolean v0, p1, Lcom/google/gson/Gson;->htmlSafe:Z
  164. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->escapeHtmlChars:Z
  165. .line 121
  166. iget-boolean v0, p1, Lcom/google/gson/Gson;->prettyPrinting:Z
  167. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->prettyPrinting:Z
  168. .line 122
  169. iget-boolean v0, p1, Lcom/google/gson/Gson;->lenient:Z
  170. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->lenient:Z
  171. .line 123
  172. iget-boolean v0, p1, Lcom/google/gson/Gson;->serializeSpecialFloatingPointValues:Z
  173. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->serializeSpecialFloatingPointValues:Z
  174. .line 124
  175. iget-object v0, p1, Lcom/google/gson/Gson;->longSerializationPolicy:Lcom/google/gson/LongSerializationPolicy;
  176. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->longSerializationPolicy:Lcom/google/gson/LongSerializationPolicy;
  177. .line 125
  178. iget-object v0, p1, Lcom/google/gson/Gson;->datePattern:Ljava/lang/String;
  179. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->datePattern:Ljava/lang/String;
  180. .line 126
  181. iget v0, p1, Lcom/google/gson/Gson;->dateStyle:I
  182. iput v0, p0, Lcom/google/gson/GsonBuilder;->dateStyle:I
  183. .line 127
  184. iget v0, p1, Lcom/google/gson/Gson;->timeStyle:I
  185. iput v0, p0, Lcom/google/gson/GsonBuilder;->timeStyle:I
  186. .line 128
  187. iget-object v0, p0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List;
  188. iget-object v1, p1, Lcom/google/gson/Gson;->builderFactories:Ljava/util/List;
  189. invoke-interface {v0, v1}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
  190. .line 129
  191. iget-object v0, p0, Lcom/google/gson/GsonBuilder;->hierarchyFactories:Ljava/util/List;
  192. iget-object v1, p1, Lcom/google/gson/Gson;->builderHierarchyFactories:Ljava/util/List;
  193. invoke-interface {v0, v1}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
  194. .line 130
  195. return-void
  196. .end method
  197. .method private addTypeAdaptersForDate(Ljava/lang/String;IILjava/util/List;)V
  198. .locals 4
  199. .param p1, "datePattern" # Ljava/lang/String;
  200. .param p2, "dateStyle" # I
  201. .param p3, "timeStyle" # I
  202. .annotation system Ldalvik/annotation/Signature;
  203. value = {
  204. "(",
  205. "Ljava/lang/String;",
  206. "II",
  207. "Ljava/util/List<",
  208. "Lcom/google/gson/TypeAdapterFactory;",
  209. ">;)V"
  210. }
  211. .end annotation
  212. .line 611
  213. .local p4, "factories":Ljava/util/List;, "Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;"
  214. if-eqz p1, :cond_0
  215. invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String;
  216. move-result-object v0
  217. const-string v1, ""
  218. invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  219. move-result v0
  220. if-nez v0, :cond_0
  221. .line 612
  222. new-instance v0, Lcom/google/gson/DefaultDateTypeAdapter;
  223. const-class v1, Ljava/util/Date;
  224. invoke-direct {v0, v1, p1}, Lcom/google/gson/DefaultDateTypeAdapter;-><init>(Ljava/lang/Class;Ljava/lang/String;)V
  225. .line 613
  226. .local v0, "dateTypeAdapter":Lcom/google/gson/DefaultDateTypeAdapter;
  227. new-instance v1, Lcom/google/gson/DefaultDateTypeAdapter;
  228. const-class v2, Ljava/sql/Timestamp;
  229. invoke-direct {v1, v2, p1}, Lcom/google/gson/DefaultDateTypeAdapter;-><init>(Ljava/lang/Class;Ljava/lang/String;)V
  230. .line 614
  231. .local v1, "timestampTypeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<Ljava/sql/Timestamp;>;"
  232. new-instance v2, Lcom/google/gson/DefaultDateTypeAdapter;
  233. const-class v3, Ljava/sql/Date;
  234. invoke-direct {v2, v3, p1}, Lcom/google/gson/DefaultDateTypeAdapter;-><init>(Ljava/lang/Class;Ljava/lang/String;)V
  235. .local v2, "javaSqlDateTypeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<Ljava/sql/Date;>;"
  236. goto :goto_0
  237. .line 615
  238. .end local v0 # "dateTypeAdapter":Lcom/google/gson/DefaultDateTypeAdapter;
  239. .end local v1 # "timestampTypeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<Ljava/sql/Timestamp;>;"
  240. .end local v2 # "javaSqlDateTypeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<Ljava/sql/Date;>;"
  241. :cond_0
  242. const/4 v0, 0x2
  243. if-eq p2, v0, :cond_1
  244. if-eq p3, v0, :cond_1
  245. .line 616
  246. new-instance v0, Lcom/google/gson/DefaultDateTypeAdapter;
  247. const-class v1, Ljava/util/Date;
  248. invoke-direct {v0, v1, p2, p3}, Lcom/google/gson/DefaultDateTypeAdapter;-><init>(Ljava/lang/Class;II)V
  249. .line 617
  250. .restart local v0 # "dateTypeAdapter":Lcom/google/gson/DefaultDateTypeAdapter;
  251. new-instance v1, Lcom/google/gson/DefaultDateTypeAdapter;
  252. const-class v2, Ljava/sql/Timestamp;
  253. invoke-direct {v1, v2, p2, p3}, Lcom/google/gson/DefaultDateTypeAdapter;-><init>(Ljava/lang/Class;II)V
  254. .line 618
  255. .restart local v1 # "timestampTypeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<Ljava/sql/Timestamp;>;"
  256. new-instance v2, Lcom/google/gson/DefaultDateTypeAdapter;
  257. const-class v3, Ljava/sql/Date;
  258. invoke-direct {v2, v3, p2, p3}, Lcom/google/gson/DefaultDateTypeAdapter;-><init>(Ljava/lang/Class;II)V
  259. .line 623
  260. .restart local v2 # "javaSqlDateTypeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<Ljava/sql/Date;>;"
  261. :goto_0
  262. const-class v3, Ljava/util/Date;
  263. invoke-static {v3, v0}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
  264. move-result-object v3
  265. invoke-interface {p4, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  266. .line 624
  267. const-class v3, Ljava/sql/Timestamp;
  268. invoke-static {v3, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
  269. move-result-object v3
  270. invoke-interface {p4, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  271. .line 625
  272. const-class v3, Ljava/sql/Date;
  273. invoke-static {v3, v2}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
  274. move-result-object v3
  275. invoke-interface {p4, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  276. .line 626
  277. return-void
  278. .line 620
  279. .end local v0 # "dateTypeAdapter":Lcom/google/gson/DefaultDateTypeAdapter;
  280. .end local v1 # "timestampTypeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<Ljava/sql/Timestamp;>;"
  281. .end local v2 # "javaSqlDateTypeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<Ljava/sql/Date;>;"
  282. :cond_1
  283. return-void
  284. .end method
  285. # virtual methods
  286. .method public addDeserializationExclusionStrategy(Lcom/google/gson/ExclusionStrategy;)Lcom/google/gson/GsonBuilder;
  287. .locals 3
  288. .param p1, "strategy" # Lcom/google/gson/ExclusionStrategy;
  289. .line 375
  290. iget-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  291. const/4 v1, 0x0
  292. const/4 v2, 0x1
  293. invoke-virtual {v0, p1, v1, v2}, Lcom/google/gson/internal/Excluder;->withExclusionStrategy(Lcom/google/gson/ExclusionStrategy;ZZ)Lcom/google/gson/internal/Excluder;
  294. move-result-object v0
  295. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  296. .line 376
  297. return-object p0
  298. .end method
  299. .method public addSerializationExclusionStrategy(Lcom/google/gson/ExclusionStrategy;)Lcom/google/gson/GsonBuilder;
  300. .locals 3
  301. .param p1, "strategy" # Lcom/google/gson/ExclusionStrategy;
  302. .line 358
  303. iget-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  304. const/4 v1, 0x1
  305. const/4 v2, 0x0
  306. invoke-virtual {v0, p1, v1, v2}, Lcom/google/gson/internal/Excluder;->withExclusionStrategy(Lcom/google/gson/ExclusionStrategy;ZZ)Lcom/google/gson/internal/Excluder;
  307. move-result-object v0
  308. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  309. .line 359
  310. return-object p0
  311. .end method
  312. .method public create()Lcom/google/gson/Gson;
  313. .locals 23
  314. .line 587
  315. move-object/from16 v0, p0
  316. new-instance v1, Ljava/util/ArrayList;
  317. iget-object v2, v0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List;
  318. invoke-interface {v2}, Ljava/util/List;->size()I
  319. move-result v2
  320. iget-object v3, v0, Lcom/google/gson/GsonBuilder;->hierarchyFactories:Ljava/util/List;
  321. invoke-interface {v3}, Ljava/util/List;->size()I
  322. move-result v3
  323. add-int/2addr v2, v3
  324. add-int/lit8 v2, v2, 0x3
  325. invoke-direct {v1, v2}, Ljava/util/ArrayList;-><init>(I)V
  326. .local v1, "factories":Ljava/util/List;, "Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;"
  327. move-object/from16 v20, v1
  328. .line 588
  329. iget-object v2, v0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List;
  330. invoke-interface {v1, v2}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
  331. .line 589
  332. invoke-static {v1}, Ljava/util/Collections;->reverse(Ljava/util/List;)V
  333. .line 591
  334. new-instance v2, Ljava/util/ArrayList;
  335. iget-object v3, v0, Lcom/google/gson/GsonBuilder;->hierarchyFactories:Ljava/util/List;
  336. invoke-direct {v2, v3}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
  337. .line 592
  338. .local v2, "hierarchyFactories":Ljava/util/List;, "Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;"
  339. invoke-static {v2}, Ljava/util/Collections;->reverse(Ljava/util/List;)V
  340. .line 593
  341. invoke-interface {v1, v2}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
  342. .line 595
  343. iget-object v3, v0, Lcom/google/gson/GsonBuilder;->datePattern:Ljava/lang/String;
  344. iget v4, v0, Lcom/google/gson/GsonBuilder;->dateStyle:I
  345. iget v5, v0, Lcom/google/gson/GsonBuilder;->timeStyle:I
  346. invoke-direct {v0, v3, v4, v5, v1}, Lcom/google/gson/GsonBuilder;->addTypeAdaptersForDate(Ljava/lang/String;IILjava/util/List;)V
  347. .line 597
  348. new-instance v21, Lcom/google/gson/Gson;
  349. move-object/from16 v3, v21
  350. iget-object v4, v0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  351. iget-object v5, v0, Lcom/google/gson/GsonBuilder;->fieldNamingPolicy:Lcom/google/gson/FieldNamingStrategy;
  352. iget-object v6, v0, Lcom/google/gson/GsonBuilder;->instanceCreators:Ljava/util/Map;
  353. iget-boolean v7, v0, Lcom/google/gson/GsonBuilder;->serializeNulls:Z
  354. iget-boolean v8, v0, Lcom/google/gson/GsonBuilder;->complexMapKeySerialization:Z
  355. iget-boolean v9, v0, Lcom/google/gson/GsonBuilder;->generateNonExecutableJson:Z
  356. iget-boolean v10, v0, Lcom/google/gson/GsonBuilder;->escapeHtmlChars:Z
  357. iget-boolean v11, v0, Lcom/google/gson/GsonBuilder;->prettyPrinting:Z
  358. iget-boolean v12, v0, Lcom/google/gson/GsonBuilder;->lenient:Z
  359. iget-boolean v13, v0, Lcom/google/gson/GsonBuilder;->serializeSpecialFloatingPointValues:Z
  360. iget-object v14, v0, Lcom/google/gson/GsonBuilder;->longSerializationPolicy:Lcom/google/gson/LongSerializationPolicy;
  361. iget-object v15, v0, Lcom/google/gson/GsonBuilder;->datePattern:Ljava/lang/String;
  362. move-object/from16 v22, v1
  363. .end local v1 # "factories":Ljava/util/List;, "Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;"
  364. .local v22, "factories":Ljava/util/List;, "Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;"
  365. iget v1, v0, Lcom/google/gson/GsonBuilder;->dateStyle:I
  366. move/from16 v16, v1
  367. iget v1, v0, Lcom/google/gson/GsonBuilder;->timeStyle:I
  368. move/from16 v17, v1
  369. iget-object v1, v0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List;
  370. move-object/from16 v18, v1
  371. iget-object v1, v0, Lcom/google/gson/GsonBuilder;->hierarchyFactories:Ljava/util/List;
  372. move-object/from16 v19, v1
  373. invoke-direct/range {v3 .. v20}, Lcom/google/gson/Gson;-><init>(Lcom/google/gson/internal/Excluder;Lcom/google/gson/FieldNamingStrategy;Ljava/util/Map;ZZZZZZZLcom/google/gson/LongSerializationPolicy;Ljava/lang/String;IILjava/util/List;Ljava/util/List;Ljava/util/List;)V
  374. return-object v21
  375. .end method
  376. .method public disableHtmlEscaping()Lcom/google/gson/GsonBuilder;
  377. .locals 1
  378. .line 411
  379. const/4 v0, 0x0
  380. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->escapeHtmlChars:Z
  381. .line 412
  382. return-object p0
  383. .end method
  384. .method public disableInnerClassSerialization()Lcom/google/gson/GsonBuilder;
  385. .locals 1
  386. .line 285
  387. iget-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  388. invoke-virtual {v0}, Lcom/google/gson/internal/Excluder;->disableInnerClassSerialization()Lcom/google/gson/internal/Excluder;
  389. move-result-object v0
  390. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  391. .line 286
  392. return-object p0
  393. .end method
  394. .method public enableComplexMapKeySerialization()Lcom/google/gson/GsonBuilder;
  395. .locals 1
  396. .line 274
  397. const/4 v0, 0x1
  398. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->complexMapKeySerialization:Z
  399. .line 275
  400. return-object p0
  401. .end method
  402. .method public varargs excludeFieldsWithModifiers([I)Lcom/google/gson/GsonBuilder;
  403. .locals 1
  404. .param p1, "modifiers" # [I
  405. .line 156
  406. iget-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  407. invoke-virtual {v0, p1}, Lcom/google/gson/internal/Excluder;->withModifiers([I)Lcom/google/gson/internal/Excluder;
  408. move-result-object v0
  409. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  410. .line 157
  411. return-object p0
  412. .end method
  413. .method public excludeFieldsWithoutExposeAnnotation()Lcom/google/gson/GsonBuilder;
  414. .locals 1
  415. .line 181
  416. iget-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  417. invoke-virtual {v0}, Lcom/google/gson/internal/Excluder;->excludeFieldsWithoutExposeAnnotation()Lcom/google/gson/internal/Excluder;
  418. move-result-object v0
  419. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  420. .line 182
  421. return-object p0
  422. .end method
  423. .method public generateNonExecutableJson()Lcom/google/gson/GsonBuilder;
  424. .locals 1
  425. .line 170
  426. const/4 v0, 0x1
  427. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->generateNonExecutableJson:Z
  428. .line 171
  429. return-object p0
  430. .end method
  431. .method public registerTypeAdapter(Ljava/lang/reflect/Type;Ljava/lang/Object;)Lcom/google/gson/GsonBuilder;
  432. .locals 3
  433. .param p1, "type" # Ljava/lang/reflect/Type;
  434. .param p2, "typeAdapter" # Ljava/lang/Object;
  435. .line 497
  436. instance-of v0, p2, Lcom/google/gson/JsonSerializer;
  437. if-nez v0, :cond_1
  438. instance-of v0, p2, Lcom/google/gson/JsonDeserializer;
  439. if-nez v0, :cond_1
  440. instance-of v0, p2, Lcom/google/gson/InstanceCreator;
  441. if-nez v0, :cond_1
  442. instance-of v0, p2, Lcom/google/gson/TypeAdapter;
  443. if-eqz v0, :cond_0
  444. goto :goto_0
  445. :cond_0
  446. const/4 v0, 0x0
  447. goto :goto_1
  448. :cond_1
  449. :goto_0
  450. const/4 v0, 0x1
  451. :goto_1
  452. invoke-static {v0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V
  453. .line 501
  454. instance-of v0, p2, Lcom/google/gson/InstanceCreator;
  455. if-eqz v0, :cond_2
  456. .line 502
  457. iget-object v0, p0, Lcom/google/gson/GsonBuilder;->instanceCreators:Ljava/util/Map;
  458. move-object v1, p2
  459. check-cast v1, Lcom/google/gson/InstanceCreator;
  460. invoke-interface {v0, p1, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
  461. .line 504
  462. :cond_2
  463. instance-of v0, p2, Lcom/google/gson/JsonSerializer;
  464. if-nez v0, :cond_3
  465. instance-of v0, p2, Lcom/google/gson/JsonDeserializer;
  466. if-eqz v0, :cond_4
  467. .line 505
  468. :cond_3
  469. invoke-static {p1}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
  470. move-result-object v0
  471. .line 506
  472. .local v0, "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<*>;"
  473. iget-object v1, p0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List;
  474. invoke-static {v0, p2}, Lcom/google/gson/internal/bind/TreeTypeAdapter;->newFactoryWithMatchRawType(Lcom/google/gson/reflect/TypeToken;Ljava/lang/Object;)Lcom/google/gson/TypeAdapterFactory;
  475. move-result-object v2
  476. invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  477. .line 508
  478. .end local v0 # "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<*>;"
  479. :cond_4
  480. instance-of v0, p2, Lcom/google/gson/TypeAdapter;
  481. if-eqz v0, :cond_5
  482. .line 509
  483. iget-object v0, p0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List;
  484. invoke-static {p1}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
  485. move-result-object v1
  486. move-object v2, p2
  487. check-cast v2, Lcom/google/gson/TypeAdapter;
  488. invoke-static {v1, v2}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Lcom/google/gson/reflect/TypeToken;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
  489. move-result-object v1
  490. invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  491. .line 511
  492. :cond_5
  493. return-object p0
  494. .end method
  495. .method public registerTypeAdapterFactory(Lcom/google/gson/TypeAdapterFactory;)Lcom/google/gson/GsonBuilder;
  496. .locals 1
  497. .param p1, "factory" # Lcom/google/gson/TypeAdapterFactory;
  498. .line 523
  499. iget-object v0, p0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List;
  500. invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  501. .line 524
  502. return-object p0
  503. .end method
  504. .method public registerTypeHierarchyAdapter(Ljava/lang/Class;Ljava/lang/Object;)Lcom/google/gson/GsonBuilder;
  505. .locals 2
  506. .param p2, "typeAdapter" # Ljava/lang/Object;
  507. .annotation system Ldalvik/annotation/Signature;
  508. value = {
  509. "(",
  510. "Ljava/lang/Class<",
  511. "*>;",
  512. "Ljava/lang/Object;",
  513. ")",
  514. "Lcom/google/gson/GsonBuilder;"
  515. }
  516. .end annotation
  517. .line 543
  518. .local p1, "baseType":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
  519. instance-of v0, p2, Lcom/google/gson/JsonSerializer;
  520. if-nez v0, :cond_1
  521. instance-of v0, p2, Lcom/google/gson/JsonDeserializer;
  522. if-nez v0, :cond_1
  523. instance-of v0, p2, Lcom/google/gson/TypeAdapter;
  524. if-eqz v0, :cond_0
  525. goto :goto_0
  526. :cond_0
  527. const/4 v0, 0x0
  528. goto :goto_1
  529. :cond_1
  530. :goto_0
  531. const/4 v0, 0x1
  532. :goto_1
  533. invoke-static {v0}, Lcom/google/gson/internal/$Gson$Preconditions;->checkArgument(Z)V
  534. .line 546
  535. instance-of v0, p2, Lcom/google/gson/JsonDeserializer;
  536. if-nez v0, :cond_2
  537. instance-of v0, p2, Lcom/google/gson/JsonSerializer;
  538. if-eqz v0, :cond_3
  539. .line 547
  540. :cond_2
  541. iget-object v0, p0, Lcom/google/gson/GsonBuilder;->hierarchyFactories:Ljava/util/List;
  542. invoke-static {p1, p2}, Lcom/google/gson/internal/bind/TreeTypeAdapter;->newTypeHierarchyFactory(Ljava/lang/Class;Ljava/lang/Object;)Lcom/google/gson/TypeAdapterFactory;
  543. move-result-object v1
  544. invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  545. .line 549
  546. :cond_3
  547. instance-of v0, p2, Lcom/google/gson/TypeAdapter;
  548. if-eqz v0, :cond_4
  549. .line 550
  550. iget-object v0, p0, Lcom/google/gson/GsonBuilder;->factories:Ljava/util/List;
  551. move-object v1, p2
  552. check-cast v1, Lcom/google/gson/TypeAdapter;
  553. invoke-static {p1, v1}, Lcom/google/gson/internal/bind/TypeAdapters;->newTypeHierarchyFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
  554. move-result-object v1
  555. invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  556. .line 552
  557. :cond_4
  558. return-object p0
  559. .end method
  560. .method public serializeNulls()Lcom/google/gson/GsonBuilder;
  561. .locals 1
  562. .line 193
  563. const/4 v0, 0x1
  564. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->serializeNulls:Z
  565. .line 194
  566. return-object p0
  567. .end method
  568. .method public serializeSpecialFloatingPointValues()Lcom/google/gson/GsonBuilder;
  569. .locals 1
  570. .line 576
  571. const/4 v0, 0x1
  572. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->serializeSpecialFloatingPointValues:Z
  573. .line 577
  574. return-object p0
  575. .end method
  576. .method public setDateFormat(I)Lcom/google/gson/GsonBuilder;
  577. .locals 1
  578. .param p1, "style" # I
  579. .line 452
  580. iput p1, p0, Lcom/google/gson/GsonBuilder;->dateStyle:I
  581. .line 453
  582. const/4 v0, 0x0
  583. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->datePattern:Ljava/lang/String;
  584. .line 454
  585. return-object p0
  586. .end method
  587. .method public setDateFormat(II)Lcom/google/gson/GsonBuilder;
  588. .locals 1
  589. .param p1, "dateStyle" # I
  590. .param p2, "timeStyle" # I
  591. .line 473
  592. iput p1, p0, Lcom/google/gson/GsonBuilder;->dateStyle:I
  593. .line 474
  594. iput p2, p0, Lcom/google/gson/GsonBuilder;->timeStyle:I
  595. .line 475
  596. const/4 v0, 0x0
  597. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->datePattern:Ljava/lang/String;
  598. .line 476
  599. return-object p0
  600. .end method
  601. .method public setDateFormat(Ljava/lang/String;)Lcom/google/gson/GsonBuilder;
  602. .locals 0
  603. .param p1, "pattern" # Ljava/lang/String;
  604. .line 433
  605. iput-object p1, p0, Lcom/google/gson/GsonBuilder;->datePattern:Ljava/lang/String;
  606. .line 434
  607. return-object p0
  608. .end method
  609. .method public varargs setExclusionStrategies([Lcom/google/gson/ExclusionStrategy;)Lcom/google/gson/GsonBuilder;
  610. .locals 5
  611. .param p1, "strategies" # [Lcom/google/gson/ExclusionStrategy;
  612. .line 339
  613. array-length v0, p1
  614. const/4 v1, 0x0
  615. :goto_0
  616. if-ge v1, v0, :cond_0
  617. aget-object v2, p1, v1
  618. .line 340
  619. .local v2, "strategy":Lcom/google/gson/ExclusionStrategy;
  620. iget-object v3, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  621. const/4 v4, 0x1
  622. invoke-virtual {v3, v2, v4, v4}, Lcom/google/gson/internal/Excluder;->withExclusionStrategy(Lcom/google/gson/ExclusionStrategy;ZZ)Lcom/google/gson/internal/Excluder;
  623. move-result-object v3
  624. iput-object v3, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  625. .line 339
  626. .end local v2 # "strategy":Lcom/google/gson/ExclusionStrategy;
  627. add-int/lit8 v1, v1, 0x1
  628. goto :goto_0
  629. .line 342
  630. :cond_0
  631. return-object p0
  632. .end method
  633. .method public setFieldNamingPolicy(Lcom/google/gson/FieldNamingPolicy;)Lcom/google/gson/GsonBuilder;
  634. .locals 0
  635. .param p1, "namingConvention" # Lcom/google/gson/FieldNamingPolicy;
  636. .line 311
  637. iput-object p1, p0, Lcom/google/gson/GsonBuilder;->fieldNamingPolicy:Lcom/google/gson/FieldNamingStrategy;
  638. .line 312
  639. return-object p0
  640. .end method
  641. .method public setFieldNamingStrategy(Lcom/google/gson/FieldNamingStrategy;)Lcom/google/gson/GsonBuilder;
  642. .locals 0
  643. .param p1, "fieldNamingStrategy" # Lcom/google/gson/FieldNamingStrategy;
  644. .line 324
  645. iput-object p1, p0, Lcom/google/gson/GsonBuilder;->fieldNamingPolicy:Lcom/google/gson/FieldNamingStrategy;
  646. .line 325
  647. return-object p0
  648. .end method
  649. .method public setLenient()Lcom/google/gson/GsonBuilder;
  650. .locals 1
  651. .line 399
  652. const/4 v0, 0x1
  653. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->lenient:Z
  654. .line 400
  655. return-object p0
  656. .end method
  657. .method public setLongSerializationPolicy(Lcom/google/gson/LongSerializationPolicy;)Lcom/google/gson/GsonBuilder;
  658. .locals 0
  659. .param p1, "serializationPolicy" # Lcom/google/gson/LongSerializationPolicy;
  660. .line 298
  661. iput-object p1, p0, Lcom/google/gson/GsonBuilder;->longSerializationPolicy:Lcom/google/gson/LongSerializationPolicy;
  662. .line 299
  663. return-object p0
  664. .end method
  665. .method public setPrettyPrinting()Lcom/google/gson/GsonBuilder;
  666. .locals 1
  667. .line 386
  668. const/4 v0, 0x1
  669. iput-boolean v0, p0, Lcom/google/gson/GsonBuilder;->prettyPrinting:Z
  670. .line 387
  671. return-object p0
  672. .end method
  673. .method public setVersion(D)Lcom/google/gson/GsonBuilder;
  674. .locals 1
  675. .param p1, "ignoreVersionsAfter" # D
  676. .line 140
  677. iget-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  678. invoke-virtual {v0, p1, p2}, Lcom/google/gson/internal/Excluder;->withVersion(D)Lcom/google/gson/internal/Excluder;
  679. move-result-object v0
  680. iput-object v0, p0, Lcom/google/gson/GsonBuilder;->excluder:Lcom/google/gson/internal/Excluder;
  681. .line 141
  682. return-object p0
  683. .end method