Gson.smali 77 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506
  1. .class public final Lcom/google/gson/Gson;
  2. .super Ljava/lang/Object;
  3. .source "Gson.java"
  4. # annotations
  5. .annotation system Ldalvik/annotation/MemberClasses;
  6. value = {
  7. Lcom/google/gson/Gson$FutureTypeAdapter;
  8. }
  9. .end annotation
  10. # static fields
  11. .field static final DEFAULT_COMPLEX_MAP_KEYS:Z = false
  12. .field static final DEFAULT_ESCAPE_HTML:Z = true
  13. .field static final DEFAULT_JSON_NON_EXECUTABLE:Z = false
  14. .field static final DEFAULT_LENIENT:Z = false
  15. .field static final DEFAULT_PRETTY_PRINT:Z = false
  16. .field static final DEFAULT_SERIALIZE_NULLS:Z = false
  17. .field static final DEFAULT_SPECIALIZE_FLOAT_VALUES:Z = false
  18. .field private static final JSON_NON_EXECUTABLE_PREFIX:Ljava/lang/String; = ")]}\'\n"
  19. .field private static final NULL_KEY_SURROGATE:Lcom/google/gson/reflect/TypeToken;
  20. .annotation system Ldalvik/annotation/Signature;
  21. value = {
  22. "Lcom/google/gson/reflect/TypeToken<",
  23. "*>;"
  24. }
  25. .end annotation
  26. .end field
  27. # instance fields
  28. .field final builderFactories:Ljava/util/List;
  29. .annotation system Ldalvik/annotation/Signature;
  30. value = {
  31. "Ljava/util/List<",
  32. "Lcom/google/gson/TypeAdapterFactory;",
  33. ">;"
  34. }
  35. .end annotation
  36. .end field
  37. .field final builderHierarchyFactories:Ljava/util/List;
  38. .annotation system Ldalvik/annotation/Signature;
  39. value = {
  40. "Ljava/util/List<",
  41. "Lcom/google/gson/TypeAdapterFactory;",
  42. ">;"
  43. }
  44. .end annotation
  45. .end field
  46. .field private final calls:Ljava/lang/ThreadLocal;
  47. .annotation system Ldalvik/annotation/Signature;
  48. value = {
  49. "Ljava/lang/ThreadLocal<",
  50. "Ljava/util/Map<",
  51. "Lcom/google/gson/reflect/TypeToken<",
  52. "*>;",
  53. "Lcom/google/gson/Gson$FutureTypeAdapter<",
  54. "*>;>;>;"
  55. }
  56. .end annotation
  57. .end field
  58. .field final complexMapKeySerialization:Z
  59. .field private final constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
  60. .field final datePattern:Ljava/lang/String;
  61. .field final dateStyle:I
  62. .field final excluder:Lcom/google/gson/internal/Excluder;
  63. .field final factories:Ljava/util/List;
  64. .annotation system Ldalvik/annotation/Signature;
  65. value = {
  66. "Ljava/util/List<",
  67. "Lcom/google/gson/TypeAdapterFactory;",
  68. ">;"
  69. }
  70. .end annotation
  71. .end field
  72. .field final fieldNamingStrategy:Lcom/google/gson/FieldNamingStrategy;
  73. .field final generateNonExecutableJson:Z
  74. .field final htmlSafe:Z
  75. .field final instanceCreators:Ljava/util/Map;
  76. .annotation system Ldalvik/annotation/Signature;
  77. value = {
  78. "Ljava/util/Map<",
  79. "Ljava/lang/reflect/Type;",
  80. "Lcom/google/gson/InstanceCreator<",
  81. "*>;>;"
  82. }
  83. .end annotation
  84. .end field
  85. .field private final jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;
  86. .field final lenient:Z
  87. .field final longSerializationPolicy:Lcom/google/gson/LongSerializationPolicy;
  88. .field final prettyPrinting:Z
  89. .field final serializeNulls:Z
  90. .field final serializeSpecialFloatingPointValues:Z
  91. .field final timeStyle:I
  92. .field private final typeTokenCache:Ljava/util/Map;
  93. .annotation system Ldalvik/annotation/Signature;
  94. value = {
  95. "Ljava/util/Map<",
  96. "Lcom/google/gson/reflect/TypeToken<",
  97. "*>;",
  98. "Lcom/google/gson/TypeAdapter<",
  99. "*>;>;"
  100. }
  101. .end annotation
  102. .end field
  103. # direct methods
  104. .method static constructor <clinit>()V
  105. .locals 1
  106. .line 114
  107. const-class v0, Ljava/lang/Object;
  108. invoke-static {v0}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/Class;)Lcom/google/gson/reflect/TypeToken;
  109. move-result-object v0
  110. sput-object v0, Lcom/google/gson/Gson;->NULL_KEY_SURROGATE:Lcom/google/gson/reflect/TypeToken;
  111. return-void
  112. .end method
  113. .method public constructor <init>()V
  114. .locals 18
  115. move-object/from16 v0, p0
  116. .line 186
  117. sget-object v1, Lcom/google/gson/internal/Excluder;->DEFAULT:Lcom/google/gson/internal/Excluder;
  118. sget-object v2, Lcom/google/gson/FieldNamingPolicy;->IDENTITY:Lcom/google/gson/FieldNamingPolicy;
  119. .line 187
  120. invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map;
  121. move-result-object v3
  122. sget-object v11, Lcom/google/gson/LongSerializationPolicy;->DEFAULT:Lcom/google/gson/LongSerializationPolicy;
  123. .line 191
  124. invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
  125. move-result-object v15
  126. invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
  127. move-result-object v16
  128. .line 192
  129. invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
  130. move-result-object v17
  131. .line 186
  132. const/4 v4, 0x0
  133. const/4 v5, 0x0
  134. const/4 v6, 0x0
  135. const/4 v7, 0x1
  136. const/4 v8, 0x0
  137. const/4 v9, 0x0
  138. const/4 v10, 0x0
  139. const/4 v12, 0x0
  140. const/4 v13, 0x2
  141. const/4 v14, 0x2
  142. invoke-direct/range {v0 .. v17}, 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
  143. .line 193
  144. return-void
  145. .end method
  146. .method constructor <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
  147. .locals 18
  148. .param p1, "excluder" # Lcom/google/gson/internal/Excluder;
  149. .param p2, "fieldNamingStrategy" # Lcom/google/gson/FieldNamingStrategy;
  150. .param p4, "serializeNulls" # Z
  151. .param p5, "complexMapKeySerialization" # Z
  152. .param p6, "generateNonExecutableGson" # Z
  153. .param p7, "htmlSafe" # Z
  154. .param p8, "prettyPrinting" # Z
  155. .param p9, "lenient" # Z
  156. .param p10, "serializeSpecialFloatingPointValues" # Z
  157. .param p11, "longSerializationPolicy" # Lcom/google/gson/LongSerializationPolicy;
  158. .param p12, "datePattern" # Ljava/lang/String;
  159. .param p13, "dateStyle" # I
  160. .param p14, "timeStyle" # I
  161. .annotation system Ldalvik/annotation/Signature;
  162. value = {
  163. "(",
  164. "Lcom/google/gson/internal/Excluder;",
  165. "Lcom/google/gson/FieldNamingStrategy;",
  166. "Ljava/util/Map<",
  167. "Ljava/lang/reflect/Type;",
  168. "Lcom/google/gson/InstanceCreator<",
  169. "*>;>;ZZZZZZZ",
  170. "Lcom/google/gson/LongSerializationPolicy;",
  171. "Ljava/lang/String;",
  172. "II",
  173. "Ljava/util/List<",
  174. "Lcom/google/gson/TypeAdapterFactory;",
  175. ">;",
  176. "Ljava/util/List<",
  177. "Lcom/google/gson/TypeAdapterFactory;",
  178. ">;",
  179. "Ljava/util/List<",
  180. "Lcom/google/gson/TypeAdapterFactory;",
  181. ">;)V"
  182. }
  183. .end annotation
  184. .line 202
  185. .local p3, "instanceCreators":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/reflect/Type;Lcom/google/gson/InstanceCreator<*>;>;"
  186. .local p15, "builderFactories":Ljava/util/List;, "Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;"
  187. .local p16, "builderHierarchyFactories":Ljava/util/List;, "Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;"
  188. .local p17, "factoriesToBeAdded":Ljava/util/List;, "Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;"
  189. move-object/from16 v0, p0
  190. move-object/from16 v1, p1
  191. move-object/from16 v2, p2
  192. move-object/from16 v3, p3
  193. move/from16 v4, p5
  194. move/from16 v5, p10
  195. invoke-direct/range {p0 .. p0}, Ljava/lang/Object;-><init>()V
  196. .line 124
  197. new-instance v6, Ljava/lang/ThreadLocal;
  198. invoke-direct {v6}, Ljava/lang/ThreadLocal;-><init>()V
  199. iput-object v6, v0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal;
  200. .line 127
  201. new-instance v6, Ljava/util/concurrent/ConcurrentHashMap;
  202. invoke-direct {v6}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
  203. iput-object v6, v0, Lcom/google/gson/Gson;->typeTokenCache:Ljava/util/Map;
  204. .line 203
  205. iput-object v1, v0, Lcom/google/gson/Gson;->excluder:Lcom/google/gson/internal/Excluder;
  206. .line 204
  207. iput-object v2, v0, Lcom/google/gson/Gson;->fieldNamingStrategy:Lcom/google/gson/FieldNamingStrategy;
  208. .line 205
  209. iput-object v3, v0, Lcom/google/gson/Gson;->instanceCreators:Ljava/util/Map;
  210. .line 206
  211. new-instance v6, Lcom/google/gson/internal/ConstructorConstructor;
  212. invoke-direct {v6, v3}, Lcom/google/gson/internal/ConstructorConstructor;-><init>(Ljava/util/Map;)V
  213. iput-object v6, v0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
  214. .line 207
  215. move/from16 v6, p4
  216. iput-boolean v6, v0, Lcom/google/gson/Gson;->serializeNulls:Z
  217. .line 208
  218. iput-boolean v4, v0, Lcom/google/gson/Gson;->complexMapKeySerialization:Z
  219. .line 209
  220. move/from16 v7, p6
  221. iput-boolean v7, v0, Lcom/google/gson/Gson;->generateNonExecutableJson:Z
  222. .line 210
  223. move/from16 v8, p7
  224. iput-boolean v8, v0, Lcom/google/gson/Gson;->htmlSafe:Z
  225. .line 211
  226. move/from16 v9, p8
  227. iput-boolean v9, v0, Lcom/google/gson/Gson;->prettyPrinting:Z
  228. .line 212
  229. move/from16 v10, p9
  230. iput-boolean v10, v0, Lcom/google/gson/Gson;->lenient:Z
  231. .line 213
  232. iput-boolean v5, v0, Lcom/google/gson/Gson;->serializeSpecialFloatingPointValues:Z
  233. .line 214
  234. move-object/from16 v11, p11
  235. iput-object v11, v0, Lcom/google/gson/Gson;->longSerializationPolicy:Lcom/google/gson/LongSerializationPolicy;
  236. .line 215
  237. move-object/from16 v12, p12
  238. iput-object v12, v0, Lcom/google/gson/Gson;->datePattern:Ljava/lang/String;
  239. .line 216
  240. move/from16 v13, p13
  241. iput v13, v0, Lcom/google/gson/Gson;->dateStyle:I
  242. .line 217
  243. move/from16 v14, p14
  244. iput v14, v0, Lcom/google/gson/Gson;->timeStyle:I
  245. .line 218
  246. move-object/from16 v15, p15
  247. iput-object v15, v0, Lcom/google/gson/Gson;->builderFactories:Ljava/util/List;
  248. .line 219
  249. move-object/from16 v3, p16
  250. iput-object v3, v0, Lcom/google/gson/Gson;->builderHierarchyFactories:Ljava/util/List;
  251. .line 221
  252. new-instance v16, Ljava/util/ArrayList;
  253. invoke-direct/range {v16 .. v16}, Ljava/util/ArrayList;-><init>()V
  254. move-object/from16 v17, v16
  255. .line 224
  256. .local v17, "factories":Ljava/util/List;, "Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;"
  257. sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->JSON_ELEMENT_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  258. move-object/from16 v6, v17
  259. .end local v17 # "factories":Ljava/util/List;, "Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;"
  260. .local v6, "factories":Ljava/util/List;, "Ljava/util/List<Lcom/google/gson/TypeAdapterFactory;>;"
  261. invoke-interface {v6, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  262. .line 225
  263. sget-object v3, Lcom/google/gson/internal/bind/ObjectTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory;
  264. invoke-interface {v6, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  265. .line 228
  266. invoke-interface {v6, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  267. .line 231
  268. move-object/from16 v3, p17
  269. invoke-interface {v6, v3}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
  270. .line 234
  271. sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  272. invoke-interface {v6, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  273. .line 235
  274. sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->INTEGER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  275. invoke-interface {v6, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  276. .line 236
  277. sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->BOOLEAN_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  278. invoke-interface {v6, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  279. .line 237
  280. sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->BYTE_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  281. invoke-interface {v6, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  282. .line 238
  283. sget-object v3, Lcom/google/gson/internal/bind/TypeAdapters;->SHORT_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  284. invoke-interface {v6, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  285. .line 239
  286. invoke-static/range {p11 .. p11}, Lcom/google/gson/Gson;->longAdapter(Lcom/google/gson/LongSerializationPolicy;)Lcom/google/gson/TypeAdapter;
  287. move-result-object v3
  288. .line 240
  289. .local v3, "longAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<Ljava/lang/Number;>;"
  290. sget-object v7, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
  291. const-class v8, Ljava/lang/Long;
  292. invoke-static {v7, v8, v3}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
  293. move-result-object v7
  294. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  295. .line 241
  296. sget-object v7, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
  297. const-class v8, Ljava/lang/Double;
  298. .line 242
  299. invoke-direct {v0, v5}, Lcom/google/gson/Gson;->doubleAdapter(Z)Lcom/google/gson/TypeAdapter;
  300. move-result-object v9
  301. .line 241
  302. invoke-static {v7, v8, v9}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
  303. move-result-object v7
  304. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  305. .line 243
  306. sget-object v7, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
  307. const-class v8, Ljava/lang/Float;
  308. .line 244
  309. invoke-direct {v0, v5}, Lcom/google/gson/Gson;->floatAdapter(Z)Lcom/google/gson/TypeAdapter;
  310. move-result-object v9
  311. .line 243
  312. invoke-static {v7, v8, v9}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
  313. move-result-object v7
  314. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  315. .line 245
  316. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->NUMBER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  317. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  318. .line 246
  319. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->ATOMIC_INTEGER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  320. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  321. .line 247
  322. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->ATOMIC_BOOLEAN_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  323. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  324. .line 248
  325. const-class v7, Ljava/util/concurrent/atomic/AtomicLong;
  326. invoke-static {v3}, Lcom/google/gson/Gson;->atomicLongAdapter(Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapter;
  327. move-result-object v8
  328. invoke-static {v7, v8}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
  329. move-result-object v7
  330. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  331. .line 249
  332. const-class v7, Ljava/util/concurrent/atomic/AtomicLongArray;
  333. invoke-static {v3}, Lcom/google/gson/Gson;->atomicLongArrayAdapter(Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapter;
  334. move-result-object v8
  335. invoke-static {v7, v8}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
  336. move-result-object v7
  337. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  338. .line 250
  339. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->ATOMIC_INTEGER_ARRAY_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  340. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  341. .line 251
  342. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->CHARACTER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  343. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  344. .line 252
  345. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_BUILDER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  346. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  347. .line 253
  348. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->STRING_BUFFER_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  349. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  350. .line 254
  351. const-class v7, Ljava/math/BigDecimal;
  352. sget-object v8, Lcom/google/gson/internal/bind/TypeAdapters;->BIG_DECIMAL:Lcom/google/gson/TypeAdapter;
  353. invoke-static {v7, v8}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
  354. move-result-object v7
  355. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  356. .line 255
  357. const-class v7, Ljava/math/BigInteger;
  358. sget-object v8, Lcom/google/gson/internal/bind/TypeAdapters;->BIG_INTEGER:Lcom/google/gson/TypeAdapter;
  359. invoke-static {v7, v8}, Lcom/google/gson/internal/bind/TypeAdapters;->newFactory(Ljava/lang/Class;Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapterFactory;
  360. move-result-object v7
  361. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  362. .line 256
  363. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->URL_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  364. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  365. .line 257
  366. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->URI_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  367. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  368. .line 258
  369. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->UUID_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  370. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  371. .line 259
  372. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->CURRENCY_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  373. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  374. .line 260
  375. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->LOCALE_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  376. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  377. .line 261
  378. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->INET_ADDRESS_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  379. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  380. .line 262
  381. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->BIT_SET_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  382. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  383. .line 263
  384. sget-object v7, Lcom/google/gson/internal/bind/DateTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory;
  385. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  386. .line 264
  387. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->CALENDAR_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  388. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  389. .line 265
  390. sget-object v7, Lcom/google/gson/internal/bind/TimeTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory;
  391. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  392. .line 266
  393. sget-object v7, Lcom/google/gson/internal/bind/SqlDateTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory;
  394. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  395. .line 267
  396. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->TIMESTAMP_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  397. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  398. .line 268
  399. sget-object v7, Lcom/google/gson/internal/bind/ArrayTypeAdapter;->FACTORY:Lcom/google/gson/TypeAdapterFactory;
  400. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  401. .line 269
  402. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->CLASS_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  403. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  404. .line 272
  405. new-instance v7, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory;
  406. iget-object v8, v0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
  407. invoke-direct {v7, v8}, Lcom/google/gson/internal/bind/CollectionTypeAdapterFactory;-><init>(Lcom/google/gson/internal/ConstructorConstructor;)V
  408. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  409. .line 273
  410. new-instance v7, Lcom/google/gson/internal/bind/MapTypeAdapterFactory;
  411. iget-object v8, v0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
  412. invoke-direct {v7, v8, v4}, Lcom/google/gson/internal/bind/MapTypeAdapterFactory;-><init>(Lcom/google/gson/internal/ConstructorConstructor;Z)V
  413. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  414. .line 274
  415. new-instance v7, Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;
  416. iget-object v8, v0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
  417. invoke-direct {v7, v8}, Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;-><init>(Lcom/google/gson/internal/ConstructorConstructor;)V
  418. iput-object v7, v0, Lcom/google/gson/Gson;->jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;
  419. .line 275
  420. iget-object v7, v0, Lcom/google/gson/Gson;->jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;
  421. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  422. .line 276
  423. sget-object v7, Lcom/google/gson/internal/bind/TypeAdapters;->ENUM_FACTORY:Lcom/google/gson/TypeAdapterFactory;
  424. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  425. .line 277
  426. new-instance v7, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;
  427. iget-object v8, v0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
  428. iget-object v9, v0, Lcom/google/gson/Gson;->jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;
  429. invoke-direct {v7, v8, v2, v1, v9}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;-><init>(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/FieldNamingStrategy;Lcom/google/gson/internal/Excluder;Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;)V
  430. invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  431. .line 280
  432. invoke-static {v6}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
  433. move-result-object v7
  434. iput-object v7, v0, Lcom/google/gson/Gson;->factories:Ljava/util/List;
  435. .line 281
  436. return-void
  437. .end method
  438. .method private static assertFullConsumption(Ljava/lang/Object;Lcom/google/gson/stream/JsonReader;)V
  439. .locals 2
  440. .param p0, "obj" # Ljava/lang/Object;
  441. .param p1, "reader" # Lcom/google/gson/stream/JsonReader;
  442. .line 899
  443. if-eqz p0, :cond_1
  444. :try_start_0
  445. invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken;
  446. move-result-object v0
  447. sget-object v1, Lcom/google/gson/stream/JsonToken;->END_DOCUMENT:Lcom/google/gson/stream/JsonToken;
  448. if-ne v0, v1, :cond_0
  449. goto :goto_0
  450. .line 900
  451. :cond_0
  452. new-instance v0, Lcom/google/gson/JsonIOException;
  453. const-string v1, "JSON document was not fully consumed."
  454. invoke-direct {v0, v1}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/String;)V
  455. .end local p0 # "obj":Ljava/lang/Object;
  456. .end local p1 # "reader":Lcom/google/gson/stream/JsonReader;
  457. throw v0
  458. :try_end_0
  459. .catch Lcom/google/gson/stream/MalformedJsonException; {:try_start_0 .. :try_end_0} :catch_1
  460. .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
  461. .line 904
  462. .restart local p0 # "obj":Ljava/lang/Object;
  463. .restart local p1 # "reader":Lcom/google/gson/stream/JsonReader;
  464. :catch_0
  465. move-exception v0
  466. .line 905
  467. .local v0, "e":Ljava/io/IOException;
  468. new-instance v1, Lcom/google/gson/JsonIOException;
  469. invoke-direct {v1, v0}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/Throwable;)V
  470. throw v1
  471. .line 902
  472. .end local v0 # "e":Ljava/io/IOException;
  473. :catch_1
  474. move-exception v0
  475. .line 903
  476. .local v0, "e":Lcom/google/gson/stream/MalformedJsonException;
  477. new-instance v1, Lcom/google/gson/JsonSyntaxException;
  478. invoke-direct {v1, v0}, Lcom/google/gson/JsonSyntaxException;-><init>(Ljava/lang/Throwable;)V
  479. throw v1
  480. .line 906
  481. .end local v0 # "e":Lcom/google/gson/stream/MalformedJsonException;
  482. :cond_1
  483. :goto_0
  484. nop
  485. .line 907
  486. return-void
  487. .end method
  488. .method private static atomicLongAdapter(Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapter;
  489. .locals 1
  490. .annotation system Ldalvik/annotation/Signature;
  491. value = {
  492. "(",
  493. "Lcom/google/gson/TypeAdapter<",
  494. "Ljava/lang/Number;",
  495. ">;)",
  496. "Lcom/google/gson/TypeAdapter<",
  497. "Ljava/util/concurrent/atomic/AtomicLong;",
  498. ">;"
  499. }
  500. .end annotation
  501. .line 388
  502. .local p0, "longAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<Ljava/lang/Number;>;"
  503. new-instance v0, Lcom/google/gson/Gson$4;
  504. invoke-direct {v0, p0}, Lcom/google/gson/Gson$4;-><init>(Lcom/google/gson/TypeAdapter;)V
  505. .line 396
  506. invoke-virtual {v0}, Lcom/google/gson/Gson$4;->nullSafe()Lcom/google/gson/TypeAdapter;
  507. move-result-object v0
  508. .line 388
  509. return-object v0
  510. .end method
  511. .method private static atomicLongArrayAdapter(Lcom/google/gson/TypeAdapter;)Lcom/google/gson/TypeAdapter;
  512. .locals 1
  513. .annotation system Ldalvik/annotation/Signature;
  514. value = {
  515. "(",
  516. "Lcom/google/gson/TypeAdapter<",
  517. "Ljava/lang/Number;",
  518. ">;)",
  519. "Lcom/google/gson/TypeAdapter<",
  520. "Ljava/util/concurrent/atomic/AtomicLongArray;",
  521. ">;"
  522. }
  523. .end annotation
  524. .line 400
  525. .local p0, "longAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<Ljava/lang/Number;>;"
  526. new-instance v0, Lcom/google/gson/Gson$5;
  527. invoke-direct {v0, p0}, Lcom/google/gson/Gson$5;-><init>(Lcom/google/gson/TypeAdapter;)V
  528. .line 423
  529. invoke-virtual {v0}, Lcom/google/gson/Gson$5;->nullSafe()Lcom/google/gson/TypeAdapter;
  530. move-result-object v0
  531. .line 400
  532. return-object v0
  533. .end method
  534. .method static checkValidFloatingPoint(D)V
  535. .locals 3
  536. .param p0, "value" # D
  537. .line 358
  538. invoke-static {p0, p1}, Ljava/lang/Double;->isNaN(D)Z
  539. move-result v0
  540. if-nez v0, :cond_0
  541. invoke-static {p0, p1}, Ljava/lang/Double;->isInfinite(D)Z
  542. move-result v0
  543. if-nez v0, :cond_0
  544. .line 363
  545. return-void
  546. .line 359
  547. :cond_0
  548. new-instance v0, Ljava/lang/IllegalArgumentException;
  549. new-instance v1, Ljava/lang/StringBuilder;
  550. invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
  551. invoke-virtual {v1, p0, p1}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
  552. const-string v2, " is not a valid double value as per JSON specification. To override this behavior, use GsonBuilder.serializeSpecialFloatingPointValues() method."
  553. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  554. invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  555. move-result-object v1
  556. invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
  557. throw v0
  558. .end method
  559. .method private doubleAdapter(Z)Lcom/google/gson/TypeAdapter;
  560. .locals 1
  561. .param p1, "serializeSpecialFloatingPointValues" # Z
  562. .annotation system Ldalvik/annotation/Signature;
  563. value = {
  564. "(Z)",
  565. "Lcom/google/gson/TypeAdapter<",
  566. "Ljava/lang/Number;",
  567. ">;"
  568. }
  569. .end annotation
  570. .line 310
  571. if-eqz p1, :cond_0
  572. .line 311
  573. sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->DOUBLE:Lcom/google/gson/TypeAdapter;
  574. return-object v0
  575. .line 313
  576. :cond_0
  577. new-instance v0, Lcom/google/gson/Gson$1;
  578. invoke-direct {v0, p0}, Lcom/google/gson/Gson$1;-><init>(Lcom/google/gson/Gson;)V
  579. return-object v0
  580. .end method
  581. .method private floatAdapter(Z)Lcom/google/gson/TypeAdapter;
  582. .locals 1
  583. .param p1, "serializeSpecialFloatingPointValues" # Z
  584. .annotation system Ldalvik/annotation/Signature;
  585. value = {
  586. "(Z)",
  587. "Lcom/google/gson/TypeAdapter<",
  588. "Ljava/lang/Number;",
  589. ">;"
  590. }
  591. .end annotation
  592. .line 334
  593. if-eqz p1, :cond_0
  594. .line 335
  595. sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->FLOAT:Lcom/google/gson/TypeAdapter;
  596. return-object v0
  597. .line 337
  598. :cond_0
  599. new-instance v0, Lcom/google/gson/Gson$2;
  600. invoke-direct {v0, p0}, Lcom/google/gson/Gson$2;-><init>(Lcom/google/gson/Gson;)V
  601. return-object v0
  602. .end method
  603. .method private static longAdapter(Lcom/google/gson/LongSerializationPolicy;)Lcom/google/gson/TypeAdapter;
  604. .locals 1
  605. .param p0, "longSerializationPolicy" # Lcom/google/gson/LongSerializationPolicy;
  606. .annotation system Ldalvik/annotation/Signature;
  607. value = {
  608. "(",
  609. "Lcom/google/gson/LongSerializationPolicy;",
  610. ")",
  611. "Lcom/google/gson/TypeAdapter<",
  612. "Ljava/lang/Number;",
  613. ">;"
  614. }
  615. .end annotation
  616. .line 366
  617. sget-object v0, Lcom/google/gson/LongSerializationPolicy;->DEFAULT:Lcom/google/gson/LongSerializationPolicy;
  618. if-ne p0, v0, :cond_0
  619. .line 367
  620. sget-object v0, Lcom/google/gson/internal/bind/TypeAdapters;->LONG:Lcom/google/gson/TypeAdapter;
  621. return-object v0
  622. .line 369
  623. :cond_0
  624. new-instance v0, Lcom/google/gson/Gson$3;
  625. invoke-direct {v0}, Lcom/google/gson/Gson$3;-><init>()V
  626. return-object v0
  627. .end method
  628. # virtual methods
  629. .method public excluder()Lcom/google/gson/internal/Excluder;
  630. .locals 1
  631. .line 294
  632. iget-object v0, p0, Lcom/google/gson/Gson;->excluder:Lcom/google/gson/internal/Excluder;
  633. return-object v0
  634. .end method
  635. .method public fieldNamingStrategy()Lcom/google/gson/FieldNamingStrategy;
  636. .locals 1
  637. .line 298
  638. iget-object v0, p0, Lcom/google/gson/Gson;->fieldNamingStrategy:Lcom/google/gson/FieldNamingStrategy;
  639. return-object v0
  640. .end method
  641. .method public fromJson(Lcom/google/gson/JsonElement;Ljava/lang/Class;)Ljava/lang/Object;
  642. .locals 2
  643. .param p1, "json" # Lcom/google/gson/JsonElement;
  644. .annotation system Ldalvik/annotation/Signature;
  645. value = {
  646. "<T:",
  647. "Ljava/lang/Object;",
  648. ">(",
  649. "Lcom/google/gson/JsonElement;",
  650. "Ljava/lang/Class<",
  651. "TT;>;)TT;"
  652. }
  653. .end annotation
  654. .annotation system Ldalvik/annotation/Throws;
  655. value = {
  656. Lcom/google/gson/JsonSyntaxException;
  657. }
  658. .end annotation
  659. .line 967
  660. .local p2, "classOfT":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
  661. invoke-virtual {p0, p1, p2}, Lcom/google/gson/Gson;->fromJson(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;)Ljava/lang/Object;
  662. move-result-object v0
  663. .line 968
  664. .local v0, "object":Ljava/lang/Object;
  665. invoke-static {p2}, Lcom/google/gson/internal/Primitives;->wrap(Ljava/lang/Class;)Ljava/lang/Class;
  666. move-result-object v1
  667. invoke-virtual {v1, v0}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
  668. move-result-object v1
  669. return-object v1
  670. .end method
  671. .method public fromJson(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;)Ljava/lang/Object;
  672. .locals 1
  673. .param p1, "json" # Lcom/google/gson/JsonElement;
  674. .param p2, "typeOfT" # Ljava/lang/reflect/Type;
  675. .annotation system Ldalvik/annotation/Signature;
  676. value = {
  677. "<T:",
  678. "Ljava/lang/Object;",
  679. ">(",
  680. "Lcom/google/gson/JsonElement;",
  681. "Ljava/lang/reflect/Type;",
  682. ")TT;"
  683. }
  684. .end annotation
  685. .annotation system Ldalvik/annotation/Throws;
  686. value = {
  687. Lcom/google/gson/JsonSyntaxException;
  688. }
  689. .end annotation
  690. .line 991
  691. if-nez p1, :cond_0
  692. .line 992
  693. const/4 v0, 0x0
  694. return-object v0
  695. .line 994
  696. :cond_0
  697. new-instance v0, Lcom/google/gson/internal/bind/JsonTreeReader;
  698. invoke-direct {v0, p1}, Lcom/google/gson/internal/bind/JsonTreeReader;-><init>(Lcom/google/gson/JsonElement;)V
  699. invoke-virtual {p0, v0, p2}, Lcom/google/gson/Gson;->fromJson(Lcom/google/gson/stream/JsonReader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
  700. move-result-object v0
  701. return-object v0
  702. .end method
  703. .method public fromJson(Lcom/google/gson/stream/JsonReader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
  704. .locals 6
  705. .param p1, "reader" # Lcom/google/gson/stream/JsonReader;
  706. .param p2, "typeOfT" # Ljava/lang/reflect/Type;
  707. .annotation system Ldalvik/annotation/Signature;
  708. value = {
  709. "<T:",
  710. "Ljava/lang/Object;",
  711. ">(",
  712. "Lcom/google/gson/stream/JsonReader;",
  713. "Ljava/lang/reflect/Type;",
  714. ")TT;"
  715. }
  716. .end annotation
  717. .annotation system Ldalvik/annotation/Throws;
  718. value = {
  719. Lcom/google/gson/JsonIOException;,
  720. Lcom/google/gson/JsonSyntaxException;
  721. }
  722. .end annotation
  723. .line 919
  724. const/4 v0, 0x1
  725. .line 920
  726. .local v0, "isEmpty":Z
  727. invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->isLenient()Z
  728. move-result v1
  729. .line 921
  730. .local v1, "oldLenient":Z
  731. const/4 v2, 0x1
  732. invoke-virtual {p1, v2}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V
  733. .line 923
  734. :try_start_0
  735. invoke-virtual {p1}, Lcom/google/gson/stream/JsonReader;->peek()Lcom/google/gson/stream/JsonToken;
  736. .line 924
  737. const/4 v0, 0x0
  738. .line 925
  739. invoke-static {p2}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
  740. move-result-object v2
  741. .line 926
  742. .local v2, "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<TT;>;"
  743. invoke-virtual {p0, v2}, Lcom/google/gson/Gson;->getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
  744. move-result-object v3
  745. .line 927
  746. .local v3, "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<TT;>;"
  747. invoke-virtual {v3, p1}, Lcom/google/gson/TypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object;
  748. move-result-object v4
  749. :try_end_0
  750. .catch Ljava/io/EOFException; {:try_start_0 .. :try_end_0} :catch_3
  751. .catch Ljava/lang/IllegalStateException; {:try_start_0 .. :try_end_0} :catch_2
  752. .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_1
  753. .catch Ljava/lang/AssertionError; {:try_start_0 .. :try_end_0} :catch_0
  754. .catchall {:try_start_0 .. :try_end_0} :catchall_0
  755. .line 928
  756. .local v4, "object":Ljava/lang/Object;, "TT;"
  757. nop
  758. .line 946
  759. invoke-virtual {p1, v1}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V
  760. .line 928
  761. return-object v4
  762. .line 946
  763. .end local v2 # "typeToken":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<TT;>;"
  764. .end local v3 # "typeAdapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<TT;>;"
  765. .end local v4 # "object":Ljava/lang/Object;, "TT;"
  766. :catchall_0
  767. move-exception v2
  768. goto :goto_0
  769. .line 943
  770. :catch_0
  771. move-exception v2
  772. .line 944
  773. .local v2, "e":Ljava/lang/AssertionError;
  774. :try_start_1
  775. new-instance v3, Ljava/lang/AssertionError;
  776. new-instance v4, Ljava/lang/StringBuilder;
  777. invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
  778. const-string v5, "AssertionError (GSON 2.8.5): "
  779. invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  780. invoke-virtual {v2}, Ljava/lang/AssertionError;->getMessage()Ljava/lang/String;
  781. move-result-object v5
  782. invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  783. invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  784. move-result-object v4
  785. invoke-direct {v3, v4, v2}, Ljava/lang/AssertionError;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
  786. .end local v0 # "isEmpty":Z
  787. .end local v1 # "oldLenient":Z
  788. .end local p1 # "reader":Lcom/google/gson/stream/JsonReader;
  789. .end local p2 # "typeOfT":Ljava/lang/reflect/Type;
  790. throw v3
  791. .line 940
  792. .end local v2 # "e":Ljava/lang/AssertionError;
  793. .restart local v0 # "isEmpty":Z
  794. .restart local v1 # "oldLenient":Z
  795. .restart local p1 # "reader":Lcom/google/gson/stream/JsonReader;
  796. .restart local p2 # "typeOfT":Ljava/lang/reflect/Type;
  797. :catch_1
  798. move-exception v2
  799. .line 942
  800. .local v2, "e":Ljava/io/IOException;
  801. new-instance v3, Lcom/google/gson/JsonSyntaxException;
  802. invoke-direct {v3, v2}, Lcom/google/gson/JsonSyntaxException;-><init>(Ljava/lang/Throwable;)V
  803. .end local v0 # "isEmpty":Z
  804. .end local v1 # "oldLenient":Z
  805. .end local p1 # "reader":Lcom/google/gson/stream/JsonReader;
  806. .end local p2 # "typeOfT":Ljava/lang/reflect/Type;
  807. throw v3
  808. .line 938
  809. .end local v2 # "e":Ljava/io/IOException;
  810. .restart local v0 # "isEmpty":Z
  811. .restart local v1 # "oldLenient":Z
  812. .restart local p1 # "reader":Lcom/google/gson/stream/JsonReader;
  813. .restart local p2 # "typeOfT":Ljava/lang/reflect/Type;
  814. :catch_2
  815. move-exception v2
  816. .line 939
  817. .local v2, "e":Ljava/lang/IllegalStateException;
  818. new-instance v3, Lcom/google/gson/JsonSyntaxException;
  819. invoke-direct {v3, v2}, Lcom/google/gson/JsonSyntaxException;-><init>(Ljava/lang/Throwable;)V
  820. .end local v0 # "isEmpty":Z
  821. .end local v1 # "oldLenient":Z
  822. .end local p1 # "reader":Lcom/google/gson/stream/JsonReader;
  823. .end local p2 # "typeOfT":Ljava/lang/reflect/Type;
  824. throw v3
  825. :try_end_1
  826. .catchall {:try_start_1 .. :try_end_1} :catchall_0
  827. .line 929
  828. .end local v2 # "e":Ljava/lang/IllegalStateException;
  829. .restart local v0 # "isEmpty":Z
  830. .restart local v1 # "oldLenient":Z
  831. .restart local p1 # "reader":Lcom/google/gson/stream/JsonReader;
  832. .restart local p2 # "typeOfT":Ljava/lang/reflect/Type;
  833. :catch_3
  834. move-exception v2
  835. .line 934
  836. .local v2, "e":Ljava/io/EOFException;
  837. if-eqz v0, :cond_0
  838. .line 935
  839. const/4 v3, 0x0
  840. .line 946
  841. invoke-virtual {p1, v1}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V
  842. .line 935
  843. return-object v3
  844. .line 937
  845. :cond_0
  846. :try_start_2
  847. new-instance v3, Lcom/google/gson/JsonSyntaxException;
  848. invoke-direct {v3, v2}, Lcom/google/gson/JsonSyntaxException;-><init>(Ljava/lang/Throwable;)V
  849. .end local v0 # "isEmpty":Z
  850. .end local v1 # "oldLenient":Z
  851. .end local p1 # "reader":Lcom/google/gson/stream/JsonReader;
  852. .end local p2 # "typeOfT":Ljava/lang/reflect/Type;
  853. throw v3
  854. :try_end_2
  855. .catchall {:try_start_2 .. :try_end_2} :catchall_0
  856. .line 946
  857. .end local v2 # "e":Ljava/io/EOFException;
  858. .restart local v0 # "isEmpty":Z
  859. .restart local v1 # "oldLenient":Z
  860. .restart local p1 # "reader":Lcom/google/gson/stream/JsonReader;
  861. .restart local p2 # "typeOfT":Ljava/lang/reflect/Type;
  862. :goto_0
  863. invoke-virtual {p1, v1}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V
  864. throw v2
  865. .end method
  866. .method public fromJson(Ljava/io/Reader;Ljava/lang/Class;)Ljava/lang/Object;
  867. .locals 3
  868. .param p1, "json" # Ljava/io/Reader;
  869. .annotation system Ldalvik/annotation/Signature;
  870. value = {
  871. "<T:",
  872. "Ljava/lang/Object;",
  873. ">(",
  874. "Ljava/io/Reader;",
  875. "Ljava/lang/Class<",
  876. "TT;>;)TT;"
  877. }
  878. .end annotation
  879. .annotation system Ldalvik/annotation/Throws;
  880. value = {
  881. Lcom/google/gson/JsonSyntaxException;,
  882. Lcom/google/gson/JsonIOException;
  883. }
  884. .end annotation
  885. .line 864
  886. .local p2, "classOfT":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
  887. invoke-virtual {p0, p1}, Lcom/google/gson/Gson;->newJsonReader(Ljava/io/Reader;)Lcom/google/gson/stream/JsonReader;
  888. move-result-object v0
  889. .line 865
  890. .local v0, "jsonReader":Lcom/google/gson/stream/JsonReader;
  891. invoke-virtual {p0, v0, p2}, Lcom/google/gson/Gson;->fromJson(Lcom/google/gson/stream/JsonReader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
  892. move-result-object v1
  893. .line 866
  894. .local v1, "object":Ljava/lang/Object;
  895. invoke-static {v1, v0}, Lcom/google/gson/Gson;->assertFullConsumption(Ljava/lang/Object;Lcom/google/gson/stream/JsonReader;)V
  896. .line 867
  897. invoke-static {p2}, Lcom/google/gson/internal/Primitives;->wrap(Ljava/lang/Class;)Ljava/lang/Class;
  898. move-result-object v2
  899. invoke-virtual {v2, v1}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
  900. move-result-object v2
  901. return-object v2
  902. .end method
  903. .method public fromJson(Ljava/io/Reader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
  904. .locals 2
  905. .param p1, "json" # Ljava/io/Reader;
  906. .param p2, "typeOfT" # Ljava/lang/reflect/Type;
  907. .annotation system Ldalvik/annotation/Signature;
  908. value = {
  909. "<T:",
  910. "Ljava/lang/Object;",
  911. ">(",
  912. "Ljava/io/Reader;",
  913. "Ljava/lang/reflect/Type;",
  914. ")TT;"
  915. }
  916. .end annotation
  917. .annotation system Ldalvik/annotation/Throws;
  918. value = {
  919. Lcom/google/gson/JsonIOException;,
  920. Lcom/google/gson/JsonSyntaxException;
  921. }
  922. .end annotation
  923. .line 891
  924. invoke-virtual {p0, p1}, Lcom/google/gson/Gson;->newJsonReader(Ljava/io/Reader;)Lcom/google/gson/stream/JsonReader;
  925. move-result-object v0
  926. .line 892
  927. .local v0, "jsonReader":Lcom/google/gson/stream/JsonReader;
  928. invoke-virtual {p0, v0, p2}, Lcom/google/gson/Gson;->fromJson(Lcom/google/gson/stream/JsonReader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
  929. move-result-object v1
  930. .line 893
  931. .local v1, "object":Ljava/lang/Object;, "TT;"
  932. invoke-static {v1, v0}, Lcom/google/gson/Gson;->assertFullConsumption(Ljava/lang/Object;Lcom/google/gson/stream/JsonReader;)V
  933. .line 894
  934. return-object v1
  935. .end method
  936. .method public fromJson(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
  937. .locals 2
  938. .param p1, "json" # Ljava/lang/String;
  939. .annotation system Ldalvik/annotation/Signature;
  940. value = {
  941. "<T:",
  942. "Ljava/lang/Object;",
  943. ">(",
  944. "Ljava/lang/String;",
  945. "Ljava/lang/Class<",
  946. "TT;>;)TT;"
  947. }
  948. .end annotation
  949. .annotation system Ldalvik/annotation/Throws;
  950. value = {
  951. Lcom/google/gson/JsonSyntaxException;
  952. }
  953. .end annotation
  954. .line 813
  955. .local p2, "classOfT":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
  956. invoke-virtual {p0, p1, p2}, Lcom/google/gson/Gson;->fromJson(Ljava/lang/String;Ljava/lang/reflect/Type;)Ljava/lang/Object;
  957. move-result-object v0
  958. .line 814
  959. .local v0, "object":Ljava/lang/Object;
  960. invoke-static {p2}, Lcom/google/gson/internal/Primitives;->wrap(Ljava/lang/Class;)Ljava/lang/Class;
  961. move-result-object v1
  962. invoke-virtual {v1, v0}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
  963. move-result-object v1
  964. return-object v1
  965. .end method
  966. .method public fromJson(Ljava/lang/String;Ljava/lang/reflect/Type;)Ljava/lang/Object;
  967. .locals 2
  968. .param p1, "json" # Ljava/lang/String;
  969. .param p2, "typeOfT" # Ljava/lang/reflect/Type;
  970. .annotation system Ldalvik/annotation/Signature;
  971. value = {
  972. "<T:",
  973. "Ljava/lang/Object;",
  974. ">(",
  975. "Ljava/lang/String;",
  976. "Ljava/lang/reflect/Type;",
  977. ")TT;"
  978. }
  979. .end annotation
  980. .annotation system Ldalvik/annotation/Throws;
  981. value = {
  982. Lcom/google/gson/JsonSyntaxException;
  983. }
  984. .end annotation
  985. .line 837
  986. if-nez p1, :cond_0
  987. .line 838
  988. const/4 v0, 0x0
  989. return-object v0
  990. .line 840
  991. :cond_0
  992. new-instance v0, Ljava/io/StringReader;
  993. invoke-direct {v0, p1}, Ljava/io/StringReader;-><init>(Ljava/lang/String;)V
  994. .line 841
  995. .local v0, "reader":Ljava/io/StringReader;
  996. invoke-virtual {p0, v0, p2}, Lcom/google/gson/Gson;->fromJson(Ljava/io/Reader;Ljava/lang/reflect/Type;)Ljava/lang/Object;
  997. move-result-object v1
  998. .line 842
  999. .local v1, "target":Ljava/lang/Object;, "TT;"
  1000. return-object v1
  1001. .end method
  1002. .method public getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
  1003. .locals 8
  1004. .annotation system Ldalvik/annotation/Signature;
  1005. value = {
  1006. "<T:",
  1007. "Ljava/lang/Object;",
  1008. ">(",
  1009. "Lcom/google/gson/reflect/TypeToken<",
  1010. "TT;>;)",
  1011. "Lcom/google/gson/TypeAdapter<",
  1012. "TT;>;"
  1013. }
  1014. .end annotation
  1015. .line 434
  1016. .local p1, "type":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<TT;>;"
  1017. iget-object v0, p0, Lcom/google/gson/Gson;->typeTokenCache:Ljava/util/Map;
  1018. if-nez p1, :cond_0
  1019. sget-object v1, Lcom/google/gson/Gson;->NULL_KEY_SURROGATE:Lcom/google/gson/reflect/TypeToken;
  1020. goto :goto_0
  1021. :cond_0
  1022. move-object v1, p1
  1023. :goto_0
  1024. invoke-interface {v0, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
  1025. move-result-object v0
  1026. check-cast v0, Lcom/google/gson/TypeAdapter;
  1027. .line 435
  1028. .local v0, "cached":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;"
  1029. if-eqz v0, :cond_1
  1030. .line 436
  1031. return-object v0
  1032. .line 439
  1033. :cond_1
  1034. iget-object v1, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal;
  1035. invoke-virtual {v1}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
  1036. move-result-object v1
  1037. check-cast v1, Ljava/util/Map;
  1038. .line 440
  1039. .local v1, "threadCalls":Ljava/util/Map;, "Ljava/util/Map<Lcom/google/gson/reflect/TypeToken<*>;Lcom/google/gson/Gson$FutureTypeAdapter<*>;>;"
  1040. const/4 v2, 0x0
  1041. .line 441
  1042. .local v2, "requiresThreadLocalCleanup":Z
  1043. if-nez v1, :cond_2
  1044. .line 442
  1045. new-instance v3, Ljava/util/HashMap;
  1046. invoke-direct {v3}, Ljava/util/HashMap;-><init>()V
  1047. move-object v1, v3
  1048. .line 443
  1049. iget-object v3, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal;
  1050. invoke-virtual {v3, v1}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V
  1051. .line 444
  1052. const/4 v2, 0x1
  1053. .line 448
  1054. :cond_2
  1055. invoke-interface {v1, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
  1056. move-result-object v3
  1057. check-cast v3, Lcom/google/gson/Gson$FutureTypeAdapter;
  1058. .line 449
  1059. .local v3, "ongoingCall":Lcom/google/gson/Gson$FutureTypeAdapter;, "Lcom/google/gson/Gson$FutureTypeAdapter<TT;>;"
  1060. if-eqz v3, :cond_3
  1061. .line 450
  1062. return-object v3
  1063. .line 454
  1064. :cond_3
  1065. :try_start_0
  1066. new-instance v4, Lcom/google/gson/Gson$FutureTypeAdapter;
  1067. invoke-direct {v4}, Lcom/google/gson/Gson$FutureTypeAdapter;-><init>()V
  1068. .line 455
  1069. .local v4, "call":Lcom/google/gson/Gson$FutureTypeAdapter;, "Lcom/google/gson/Gson$FutureTypeAdapter<TT;>;"
  1070. invoke-interface {v1, p1, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
  1071. .line 457
  1072. iget-object v5, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List;
  1073. invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator;
  1074. move-result-object v5
  1075. :goto_1
  1076. invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z
  1077. move-result v6
  1078. if-eqz v6, :cond_6
  1079. invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  1080. move-result-object v6
  1081. check-cast v6, Lcom/google/gson/TypeAdapterFactory;
  1082. .line 458
  1083. .local v6, "factory":Lcom/google/gson/TypeAdapterFactory;
  1084. invoke-interface {v6, p0, p1}, Lcom/google/gson/TypeAdapterFactory;->create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
  1085. move-result-object v7
  1086. .line 459
  1087. .local v7, "candidate":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<TT;>;"
  1088. if-eqz v7, :cond_5
  1089. .line 460
  1090. invoke-virtual {v4, v7}, Lcom/google/gson/Gson$FutureTypeAdapter;->setDelegate(Lcom/google/gson/TypeAdapter;)V
  1091. .line 461
  1092. iget-object v5, p0, Lcom/google/gson/Gson;->typeTokenCache:Ljava/util/Map;
  1093. invoke-interface {v5, p1, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
  1094. :try_end_0
  1095. .catchall {:try_start_0 .. :try_end_0} :catchall_0
  1096. .line 462
  1097. nop
  1098. .line 467
  1099. invoke-interface {v1, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
  1100. .line 469
  1101. if-eqz v2, :cond_4
  1102. .line 470
  1103. iget-object v5, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal;
  1104. invoke-virtual {v5}, Ljava/lang/ThreadLocal;->remove()V
  1105. .line 462
  1106. :cond_4
  1107. return-object v7
  1108. .line 464
  1109. .end local v6 # "factory":Lcom/google/gson/TypeAdapterFactory;
  1110. .end local v7 # "candidate":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<TT;>;"
  1111. :cond_5
  1112. goto :goto_1
  1113. .line 465
  1114. :cond_6
  1115. :try_start_1
  1116. new-instance v5, Ljava/lang/IllegalArgumentException;
  1117. new-instance v6, Ljava/lang/StringBuilder;
  1118. invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
  1119. const-string v7, "GSON (2.8.5) cannot handle "
  1120. invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1121. invoke-virtual {v6, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  1122. invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  1123. move-result-object v6
  1124. invoke-direct {v5, v6}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
  1125. .end local v0 # "cached":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;"
  1126. .end local v1 # "threadCalls":Ljava/util/Map;, "Ljava/util/Map<Lcom/google/gson/reflect/TypeToken<*>;Lcom/google/gson/Gson$FutureTypeAdapter<*>;>;"
  1127. .end local v2 # "requiresThreadLocalCleanup":Z
  1128. .end local v3 # "ongoingCall":Lcom/google/gson/Gson$FutureTypeAdapter;, "Lcom/google/gson/Gson$FutureTypeAdapter<TT;>;"
  1129. .end local p1 # "type":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<TT;>;"
  1130. throw v5
  1131. :try_end_1
  1132. .catchall {:try_start_1 .. :try_end_1} :catchall_0
  1133. .line 467
  1134. .end local v4 # "call":Lcom/google/gson/Gson$FutureTypeAdapter;, "Lcom/google/gson/Gson$FutureTypeAdapter<TT;>;"
  1135. .restart local v0 # "cached":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;"
  1136. .restart local v1 # "threadCalls":Ljava/util/Map;, "Ljava/util/Map<Lcom/google/gson/reflect/TypeToken<*>;Lcom/google/gson/Gson$FutureTypeAdapter<*>;>;"
  1137. .restart local v2 # "requiresThreadLocalCleanup":Z
  1138. .restart local v3 # "ongoingCall":Lcom/google/gson/Gson$FutureTypeAdapter;, "Lcom/google/gson/Gson$FutureTypeAdapter<TT;>;"
  1139. .restart local p1 # "type":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<TT;>;"
  1140. :catchall_0
  1141. move-exception v4
  1142. invoke-interface {v1, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
  1143. .line 469
  1144. if-eqz v2, :cond_7
  1145. .line 470
  1146. iget-object v5, p0, Lcom/google/gson/Gson;->calls:Ljava/lang/ThreadLocal;
  1147. invoke-virtual {v5}, Ljava/lang/ThreadLocal;->remove()V
  1148. :cond_7
  1149. goto :goto_3
  1150. :goto_2
  1151. throw v4
  1152. :goto_3
  1153. goto :goto_2
  1154. .end method
  1155. .method public getAdapter(Ljava/lang/Class;)Lcom/google/gson/TypeAdapter;
  1156. .locals 1
  1157. .annotation system Ldalvik/annotation/Signature;
  1158. value = {
  1159. "<T:",
  1160. "Ljava/lang/Object;",
  1161. ">(",
  1162. "Ljava/lang/Class<",
  1163. "TT;>;)",
  1164. "Lcom/google/gson/TypeAdapter<",
  1165. "TT;>;"
  1166. }
  1167. .end annotation
  1168. .line 556
  1169. .local p1, "type":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
  1170. invoke-static {p1}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/Class;)Lcom/google/gson/reflect/TypeToken;
  1171. move-result-object v0
  1172. invoke-virtual {p0, v0}, Lcom/google/gson/Gson;->getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
  1173. move-result-object v0
  1174. return-object v0
  1175. .end method
  1176. .method public getDelegateAdapter(Lcom/google/gson/TypeAdapterFactory;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
  1177. .locals 4
  1178. .param p1, "skipPast" # Lcom/google/gson/TypeAdapterFactory;
  1179. .annotation system Ldalvik/annotation/Signature;
  1180. value = {
  1181. "<T:",
  1182. "Ljava/lang/Object;",
  1183. ">(",
  1184. "Lcom/google/gson/TypeAdapterFactory;",
  1185. "Lcom/google/gson/reflect/TypeToken<",
  1186. "TT;>;)",
  1187. "Lcom/google/gson/TypeAdapter<",
  1188. "TT;>;"
  1189. }
  1190. .end annotation
  1191. .line 528
  1192. .local p2, "type":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken<TT;>;"
  1193. iget-object v0, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List;
  1194. invoke-interface {v0, p1}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
  1195. move-result v0
  1196. if-nez v0, :cond_0
  1197. .line 529
  1198. iget-object p1, p0, Lcom/google/gson/Gson;->jsonAdapterFactory:Lcom/google/gson/internal/bind/JsonAdapterAnnotationTypeAdapterFactory;
  1199. .line 532
  1200. :cond_0
  1201. const/4 v0, 0x0
  1202. .line 533
  1203. .local v0, "skipPastFound":Z
  1204. iget-object v1, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List;
  1205. invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
  1206. move-result-object v1
  1207. :cond_1
  1208. :goto_0
  1209. invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
  1210. move-result v2
  1211. if-eqz v2, :cond_4
  1212. invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  1213. move-result-object v2
  1214. check-cast v2, Lcom/google/gson/TypeAdapterFactory;
  1215. .line 534
  1216. .local v2, "factory":Lcom/google/gson/TypeAdapterFactory;
  1217. if-nez v0, :cond_2
  1218. .line 535
  1219. if-ne v2, p1, :cond_1
  1220. .line 536
  1221. const/4 v0, 0x1
  1222. goto :goto_0
  1223. .line 541
  1224. :cond_2
  1225. invoke-interface {v2, p0, p2}, Lcom/google/gson/TypeAdapterFactory;->create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
  1226. move-result-object v3
  1227. .line 542
  1228. .local v3, "candidate":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<TT;>;"
  1229. if-eqz v3, :cond_3
  1230. .line 543
  1231. return-object v3
  1232. .line 545
  1233. .end local v2 # "factory":Lcom/google/gson/TypeAdapterFactory;
  1234. .end local v3 # "candidate":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<TT;>;"
  1235. :cond_3
  1236. goto :goto_0
  1237. .line 546
  1238. :cond_4
  1239. new-instance v1, Ljava/lang/IllegalArgumentException;
  1240. new-instance v2, Ljava/lang/StringBuilder;
  1241. invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
  1242. const-string v3, "GSON cannot serialize "
  1243. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1244. invoke-virtual {v2, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  1245. invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  1246. move-result-object v2
  1247. invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
  1248. goto :goto_2
  1249. :goto_1
  1250. throw v1
  1251. :goto_2
  1252. goto :goto_1
  1253. .end method
  1254. .method public htmlSafe()Z
  1255. .locals 1
  1256. .line 306
  1257. iget-boolean v0, p0, Lcom/google/gson/Gson;->htmlSafe:Z
  1258. return v0
  1259. .end method
  1260. .method public newBuilder()Lcom/google/gson/GsonBuilder;
  1261. .locals 1
  1262. .line 290
  1263. new-instance v0, Lcom/google/gson/GsonBuilder;
  1264. invoke-direct {v0, p0}, Lcom/google/gson/GsonBuilder;-><init>(Lcom/google/gson/Gson;)V
  1265. return-object v0
  1266. .end method
  1267. .method public newJsonReader(Ljava/io/Reader;)Lcom/google/gson/stream/JsonReader;
  1268. .locals 2
  1269. .param p1, "reader" # Ljava/io/Reader;
  1270. .line 765
  1271. new-instance v0, Lcom/google/gson/stream/JsonReader;
  1272. invoke-direct {v0, p1}, Lcom/google/gson/stream/JsonReader;-><init>(Ljava/io/Reader;)V
  1273. .line 766
  1274. .local v0, "jsonReader":Lcom/google/gson/stream/JsonReader;
  1275. iget-boolean v1, p0, Lcom/google/gson/Gson;->lenient:Z
  1276. invoke-virtual {v0, v1}, Lcom/google/gson/stream/JsonReader;->setLenient(Z)V
  1277. .line 767
  1278. return-object v0
  1279. .end method
  1280. .method public newJsonWriter(Ljava/io/Writer;)Lcom/google/gson/stream/JsonWriter;
  1281. .locals 2
  1282. .param p1, "writer" # Ljava/io/Writer;
  1283. .annotation system Ldalvik/annotation/Throws;
  1284. value = {
  1285. Ljava/io/IOException;
  1286. }
  1287. .end annotation
  1288. .line 750
  1289. iget-boolean v0, p0, Lcom/google/gson/Gson;->generateNonExecutableJson:Z
  1290. if-eqz v0, :cond_0
  1291. .line 751
  1292. const-string v0, ")]}\'\n"
  1293. invoke-virtual {p1, v0}, Ljava/io/Writer;->write(Ljava/lang/String;)V
  1294. .line 753
  1295. :cond_0
  1296. new-instance v0, Lcom/google/gson/stream/JsonWriter;
  1297. invoke-direct {v0, p1}, Lcom/google/gson/stream/JsonWriter;-><init>(Ljava/io/Writer;)V
  1298. .line 754
  1299. .local v0, "jsonWriter":Lcom/google/gson/stream/JsonWriter;
  1300. iget-boolean v1, p0, Lcom/google/gson/Gson;->prettyPrinting:Z
  1301. if-eqz v1, :cond_1
  1302. .line 755
  1303. const-string v1, " "
  1304. invoke-virtual {v0, v1}, Lcom/google/gson/stream/JsonWriter;->setIndent(Ljava/lang/String;)V
  1305. .line 757
  1306. :cond_1
  1307. iget-boolean v1, p0, Lcom/google/gson/Gson;->serializeNulls:Z
  1308. invoke-virtual {v0, v1}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V
  1309. .line 758
  1310. return-object v0
  1311. .end method
  1312. .method public serializeNulls()Z
  1313. .locals 1
  1314. .line 302
  1315. iget-boolean v0, p0, Lcom/google/gson/Gson;->serializeNulls:Z
  1316. return v0
  1317. .end method
  1318. .method public toJson(Lcom/google/gson/JsonElement;)Ljava/lang/String;
  1319. .locals 2
  1320. .param p1, "jsonElement" # Lcom/google/gson/JsonElement;
  1321. .line 724
  1322. new-instance v0, Ljava/io/StringWriter;
  1323. invoke-direct {v0}, Ljava/io/StringWriter;-><init>()V
  1324. .line 725
  1325. .local v0, "writer":Ljava/io/StringWriter;
  1326. invoke-virtual {p0, p1, v0}, Lcom/google/gson/Gson;->toJson(Lcom/google/gson/JsonElement;Ljava/lang/Appendable;)V
  1327. .line 726
  1328. invoke-virtual {v0}, Ljava/io/StringWriter;->toString()Ljava/lang/String;
  1329. move-result-object v1
  1330. return-object v1
  1331. .end method
  1332. .method public toJson(Ljava/lang/Object;)Ljava/lang/String;
  1333. .locals 1
  1334. .param p1, "src" # Ljava/lang/Object;
  1335. .line 615
  1336. if-nez p1, :cond_0
  1337. .line 616
  1338. sget-object v0, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull;
  1339. invoke-virtual {p0, v0}, Lcom/google/gson/Gson;->toJson(Lcom/google/gson/JsonElement;)Ljava/lang/String;
  1340. move-result-object v0
  1341. return-object v0
  1342. .line 618
  1343. :cond_0
  1344. invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
  1345. move-result-object v0
  1346. invoke-virtual {p0, p1, v0}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/String;
  1347. move-result-object v0
  1348. return-object v0
  1349. .end method
  1350. .method public toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/String;
  1351. .locals 2
  1352. .param p1, "src" # Ljava/lang/Object;
  1353. .param p2, "typeOfSrc" # Ljava/lang/reflect/Type;
  1354. .line 637
  1355. new-instance v0, Ljava/io/StringWriter;
  1356. invoke-direct {v0}, Ljava/io/StringWriter;-><init>()V
  1357. .line 638
  1358. .local v0, "writer":Ljava/io/StringWriter;
  1359. invoke-virtual {p0, p1, p2, v0}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/Appendable;)V
  1360. .line 639
  1361. invoke-virtual {v0}, Ljava/io/StringWriter;->toString()Ljava/lang/String;
  1362. move-result-object v1
  1363. return-object v1
  1364. .end method
  1365. .method public toJson(Lcom/google/gson/JsonElement;Lcom/google/gson/stream/JsonWriter;)V
  1366. .locals 7
  1367. .param p1, "jsonElement" # Lcom/google/gson/JsonElement;
  1368. .param p2, "writer" # Lcom/google/gson/stream/JsonWriter;
  1369. .annotation system Ldalvik/annotation/Throws;
  1370. value = {
  1371. Lcom/google/gson/JsonIOException;
  1372. }
  1373. .end annotation
  1374. .line 775
  1375. invoke-virtual {p2}, Lcom/google/gson/stream/JsonWriter;->isLenient()Z
  1376. move-result v0
  1377. .line 776
  1378. .local v0, "oldLenient":Z
  1379. const/4 v1, 0x1
  1380. invoke-virtual {p2, v1}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V
  1381. .line 777
  1382. invoke-virtual {p2}, Lcom/google/gson/stream/JsonWriter;->isHtmlSafe()Z
  1383. move-result v1
  1384. .line 778
  1385. .local v1, "oldHtmlSafe":Z
  1386. iget-boolean v2, p0, Lcom/google/gson/Gson;->htmlSafe:Z
  1387. invoke-virtual {p2, v2}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V
  1388. .line 779
  1389. invoke-virtual {p2}, Lcom/google/gson/stream/JsonWriter;->getSerializeNulls()Z
  1390. move-result v2
  1391. .line 780
  1392. .local v2, "oldSerializeNulls":Z
  1393. iget-boolean v3, p0, Lcom/google/gson/Gson;->serializeNulls:Z
  1394. invoke-virtual {p2, v3}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V
  1395. .line 782
  1396. :try_start_0
  1397. invoke-static {p1, p2}, Lcom/google/gson/internal/Streams;->write(Lcom/google/gson/JsonElement;Lcom/google/gson/stream/JsonWriter;)V
  1398. :try_end_0
  1399. .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_1
  1400. .catch Ljava/lang/AssertionError; {:try_start_0 .. :try_end_0} :catch_0
  1401. .catchall {:try_start_0 .. :try_end_0} :catchall_0
  1402. .line 788
  1403. invoke-virtual {p2, v0}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V
  1404. .line 789
  1405. invoke-virtual {p2, v1}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V
  1406. .line 790
  1407. invoke-virtual {p2, v2}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V
  1408. .line 791
  1409. nop
  1410. .line 792
  1411. return-void
  1412. .line 788
  1413. :catchall_0
  1414. move-exception v3
  1415. goto :goto_0
  1416. .line 785
  1417. :catch_0
  1418. move-exception v3
  1419. .line 786
  1420. .local v3, "e":Ljava/lang/AssertionError;
  1421. :try_start_1
  1422. new-instance v4, Ljava/lang/AssertionError;
  1423. new-instance v5, Ljava/lang/StringBuilder;
  1424. invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
  1425. const-string v6, "AssertionError (GSON 2.8.5): "
  1426. invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1427. invoke-virtual {v3}, Ljava/lang/AssertionError;->getMessage()Ljava/lang/String;
  1428. move-result-object v6
  1429. invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1430. invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  1431. move-result-object v5
  1432. invoke-direct {v4, v5, v3}, Ljava/lang/AssertionError;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
  1433. .end local v0 # "oldLenient":Z
  1434. .end local v1 # "oldHtmlSafe":Z
  1435. .end local v2 # "oldSerializeNulls":Z
  1436. .end local p1 # "jsonElement":Lcom/google/gson/JsonElement;
  1437. .end local p2 # "writer":Lcom/google/gson/stream/JsonWriter;
  1438. throw v4
  1439. .line 783
  1440. .end local v3 # "e":Ljava/lang/AssertionError;
  1441. .restart local v0 # "oldLenient":Z
  1442. .restart local v1 # "oldHtmlSafe":Z
  1443. .restart local v2 # "oldSerializeNulls":Z
  1444. .restart local p1 # "jsonElement":Lcom/google/gson/JsonElement;
  1445. .restart local p2 # "writer":Lcom/google/gson/stream/JsonWriter;
  1446. :catch_1
  1447. move-exception v3
  1448. .line 784
  1449. .local v3, "e":Ljava/io/IOException;
  1450. new-instance v4, Lcom/google/gson/JsonIOException;
  1451. invoke-direct {v4, v3}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/Throwable;)V
  1452. .end local v0 # "oldLenient":Z
  1453. .end local v1 # "oldHtmlSafe":Z
  1454. .end local v2 # "oldSerializeNulls":Z
  1455. .end local p1 # "jsonElement":Lcom/google/gson/JsonElement;
  1456. .end local p2 # "writer":Lcom/google/gson/stream/JsonWriter;
  1457. throw v4
  1458. :try_end_1
  1459. .catchall {:try_start_1 .. :try_end_1} :catchall_0
  1460. .line 788
  1461. .end local v3 # "e":Ljava/io/IOException;
  1462. .restart local v0 # "oldLenient":Z
  1463. .restart local v1 # "oldHtmlSafe":Z
  1464. .restart local v2 # "oldSerializeNulls":Z
  1465. .restart local p1 # "jsonElement":Lcom/google/gson/JsonElement;
  1466. .restart local p2 # "writer":Lcom/google/gson/stream/JsonWriter;
  1467. :goto_0
  1468. invoke-virtual {p2, v0}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V
  1469. .line 789
  1470. invoke-virtual {p2, v1}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V
  1471. .line 790
  1472. invoke-virtual {p2, v2}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V
  1473. throw v3
  1474. .end method
  1475. .method public toJson(Lcom/google/gson/JsonElement;Ljava/lang/Appendable;)V
  1476. .locals 2
  1477. .param p1, "jsonElement" # Lcom/google/gson/JsonElement;
  1478. .param p2, "writer" # Ljava/lang/Appendable;
  1479. .annotation system Ldalvik/annotation/Throws;
  1480. value = {
  1481. Lcom/google/gson/JsonIOException;
  1482. }
  1483. .end annotation
  1484. .line 739
  1485. :try_start_0
  1486. invoke-static {p2}, Lcom/google/gson/internal/Streams;->writerForAppendable(Ljava/lang/Appendable;)Ljava/io/Writer;
  1487. move-result-object v0
  1488. invoke-virtual {p0, v0}, Lcom/google/gson/Gson;->newJsonWriter(Ljava/io/Writer;)Lcom/google/gson/stream/JsonWriter;
  1489. move-result-object v0
  1490. .line 740
  1491. .local v0, "jsonWriter":Lcom/google/gson/stream/JsonWriter;
  1492. invoke-virtual {p0, p1, v0}, Lcom/google/gson/Gson;->toJson(Lcom/google/gson/JsonElement;Lcom/google/gson/stream/JsonWriter;)V
  1493. :try_end_0
  1494. .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
  1495. .line 743
  1496. .end local v0 # "jsonWriter":Lcom/google/gson/stream/JsonWriter;
  1497. nop
  1498. .line 744
  1499. return-void
  1500. .line 741
  1501. :catch_0
  1502. move-exception v0
  1503. .line 742
  1504. .local v0, "e":Ljava/io/IOException;
  1505. new-instance v1, Lcom/google/gson/JsonIOException;
  1506. invoke-direct {v1, v0}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/Throwable;)V
  1507. throw v1
  1508. .end method
  1509. .method public toJson(Ljava/lang/Object;Ljava/lang/Appendable;)V
  1510. .locals 1
  1511. .param p1, "src" # Ljava/lang/Object;
  1512. .param p2, "writer" # Ljava/lang/Appendable;
  1513. .annotation system Ldalvik/annotation/Throws;
  1514. value = {
  1515. Lcom/google/gson/JsonIOException;
  1516. }
  1517. .end annotation
  1518. .line 657
  1519. if-eqz p1, :cond_0
  1520. .line 658
  1521. invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
  1522. move-result-object v0
  1523. invoke-virtual {p0, p1, v0, p2}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/Appendable;)V
  1524. goto :goto_0
  1525. .line 660
  1526. :cond_0
  1527. sget-object v0, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull;
  1528. invoke-virtual {p0, v0, p2}, Lcom/google/gson/Gson;->toJson(Lcom/google/gson/JsonElement;Ljava/lang/Appendable;)V
  1529. .line 662
  1530. :goto_0
  1531. return-void
  1532. .end method
  1533. .method public toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/stream/JsonWriter;)V
  1534. .locals 8
  1535. .param p1, "src" # Ljava/lang/Object;
  1536. .param p2, "typeOfSrc" # Ljava/lang/reflect/Type;
  1537. .param p3, "writer" # Lcom/google/gson/stream/JsonWriter;
  1538. .annotation system Ldalvik/annotation/Throws;
  1539. value = {
  1540. Lcom/google/gson/JsonIOException;
  1541. }
  1542. .end annotation
  1543. .line 696
  1544. invoke-static {p2}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
  1545. move-result-object v0
  1546. invoke-virtual {p0, v0}, Lcom/google/gson/Gson;->getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
  1547. move-result-object v0
  1548. .line 697
  1549. .local v0, "adapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;"
  1550. invoke-virtual {p3}, Lcom/google/gson/stream/JsonWriter;->isLenient()Z
  1551. move-result v1
  1552. .line 698
  1553. .local v1, "oldLenient":Z
  1554. const/4 v2, 0x1
  1555. invoke-virtual {p3, v2}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V
  1556. .line 699
  1557. invoke-virtual {p3}, Lcom/google/gson/stream/JsonWriter;->isHtmlSafe()Z
  1558. move-result v2
  1559. .line 700
  1560. .local v2, "oldHtmlSafe":Z
  1561. iget-boolean v3, p0, Lcom/google/gson/Gson;->htmlSafe:Z
  1562. invoke-virtual {p3, v3}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V
  1563. .line 701
  1564. invoke-virtual {p3}, Lcom/google/gson/stream/JsonWriter;->getSerializeNulls()Z
  1565. move-result v3
  1566. .line 702
  1567. .local v3, "oldSerializeNulls":Z
  1568. iget-boolean v4, p0, Lcom/google/gson/Gson;->serializeNulls:Z
  1569. invoke-virtual {p3, v4}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V
  1570. .line 704
  1571. :try_start_0
  1572. invoke-virtual {v0, p3, p1}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V
  1573. :try_end_0
  1574. .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_1
  1575. .catch Ljava/lang/AssertionError; {:try_start_0 .. :try_end_0} :catch_0
  1576. .catchall {:try_start_0 .. :try_end_0} :catchall_0
  1577. .line 710
  1578. invoke-virtual {p3, v1}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V
  1579. .line 711
  1580. invoke-virtual {p3, v2}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V
  1581. .line 712
  1582. invoke-virtual {p3, v3}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V
  1583. .line 713
  1584. nop
  1585. .line 714
  1586. return-void
  1587. .line 710
  1588. :catchall_0
  1589. move-exception v4
  1590. goto :goto_0
  1591. .line 707
  1592. :catch_0
  1593. move-exception v4
  1594. .line 708
  1595. .local v4, "e":Ljava/lang/AssertionError;
  1596. :try_start_1
  1597. new-instance v5, Ljava/lang/AssertionError;
  1598. new-instance v6, Ljava/lang/StringBuilder;
  1599. invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
  1600. const-string v7, "AssertionError (GSON 2.8.5): "
  1601. invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1602. invoke-virtual {v4}, Ljava/lang/AssertionError;->getMessage()Ljava/lang/String;
  1603. move-result-object v7
  1604. invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1605. invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  1606. move-result-object v6
  1607. invoke-direct {v5, v6, v4}, Ljava/lang/AssertionError;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
  1608. .end local v0 # "adapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;"
  1609. .end local v1 # "oldLenient":Z
  1610. .end local v2 # "oldHtmlSafe":Z
  1611. .end local v3 # "oldSerializeNulls":Z
  1612. .end local p1 # "src":Ljava/lang/Object;
  1613. .end local p2 # "typeOfSrc":Ljava/lang/reflect/Type;
  1614. .end local p3 # "writer":Lcom/google/gson/stream/JsonWriter;
  1615. throw v5
  1616. .line 705
  1617. .end local v4 # "e":Ljava/lang/AssertionError;
  1618. .restart local v0 # "adapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;"
  1619. .restart local v1 # "oldLenient":Z
  1620. .restart local v2 # "oldHtmlSafe":Z
  1621. .restart local v3 # "oldSerializeNulls":Z
  1622. .restart local p1 # "src":Ljava/lang/Object;
  1623. .restart local p2 # "typeOfSrc":Ljava/lang/reflect/Type;
  1624. .restart local p3 # "writer":Lcom/google/gson/stream/JsonWriter;
  1625. :catch_1
  1626. move-exception v4
  1627. .line 706
  1628. .local v4, "e":Ljava/io/IOException;
  1629. new-instance v5, Lcom/google/gson/JsonIOException;
  1630. invoke-direct {v5, v4}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/Throwable;)V
  1631. .end local v0 # "adapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;"
  1632. .end local v1 # "oldLenient":Z
  1633. .end local v2 # "oldHtmlSafe":Z
  1634. .end local v3 # "oldSerializeNulls":Z
  1635. .end local p1 # "src":Ljava/lang/Object;
  1636. .end local p2 # "typeOfSrc":Ljava/lang/reflect/Type;
  1637. .end local p3 # "writer":Lcom/google/gson/stream/JsonWriter;
  1638. throw v5
  1639. :try_end_1
  1640. .catchall {:try_start_1 .. :try_end_1} :catchall_0
  1641. .line 710
  1642. .end local v4 # "e":Ljava/io/IOException;
  1643. .restart local v0 # "adapter":Lcom/google/gson/TypeAdapter;, "Lcom/google/gson/TypeAdapter<*>;"
  1644. .restart local v1 # "oldLenient":Z
  1645. .restart local v2 # "oldHtmlSafe":Z
  1646. .restart local v3 # "oldSerializeNulls":Z
  1647. .restart local p1 # "src":Ljava/lang/Object;
  1648. .restart local p2 # "typeOfSrc":Ljava/lang/reflect/Type;
  1649. .restart local p3 # "writer":Lcom/google/gson/stream/JsonWriter;
  1650. :goto_0
  1651. invoke-virtual {p3, v1}, Lcom/google/gson/stream/JsonWriter;->setLenient(Z)V
  1652. .line 711
  1653. invoke-virtual {p3, v2}, Lcom/google/gson/stream/JsonWriter;->setHtmlSafe(Z)V
  1654. .line 712
  1655. invoke-virtual {p3, v3}, Lcom/google/gson/stream/JsonWriter;->setSerializeNulls(Z)V
  1656. throw v4
  1657. .end method
  1658. .method public toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/Appendable;)V
  1659. .locals 2
  1660. .param p1, "src" # Ljava/lang/Object;
  1661. .param p2, "typeOfSrc" # Ljava/lang/reflect/Type;
  1662. .param p3, "writer" # Ljava/lang/Appendable;
  1663. .annotation system Ldalvik/annotation/Throws;
  1664. value = {
  1665. Lcom/google/gson/JsonIOException;
  1666. }
  1667. .end annotation
  1668. .line 682
  1669. :try_start_0
  1670. invoke-static {p3}, Lcom/google/gson/internal/Streams;->writerForAppendable(Ljava/lang/Appendable;)Ljava/io/Writer;
  1671. move-result-object v0
  1672. invoke-virtual {p0, v0}, Lcom/google/gson/Gson;->newJsonWriter(Ljava/io/Writer;)Lcom/google/gson/stream/JsonWriter;
  1673. move-result-object v0
  1674. .line 683
  1675. .local v0, "jsonWriter":Lcom/google/gson/stream/JsonWriter;
  1676. invoke-virtual {p0, p1, p2, v0}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/stream/JsonWriter;)V
  1677. :try_end_0
  1678. .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
  1679. .line 686
  1680. .end local v0 # "jsonWriter":Lcom/google/gson/stream/JsonWriter;
  1681. nop
  1682. .line 687
  1683. return-void
  1684. .line 684
  1685. :catch_0
  1686. move-exception v0
  1687. .line 685
  1688. .local v0, "e":Ljava/io/IOException;
  1689. new-instance v1, Lcom/google/gson/JsonIOException;
  1690. invoke-direct {v1, v0}, Lcom/google/gson/JsonIOException;-><init>(Ljava/lang/Throwable;)V
  1691. throw v1
  1692. .end method
  1693. .method public toJsonTree(Ljava/lang/Object;)Lcom/google/gson/JsonElement;
  1694. .locals 1
  1695. .param p1, "src" # Ljava/lang/Object;
  1696. .line 573
  1697. if-nez p1, :cond_0
  1698. .line 574
  1699. sget-object v0, Lcom/google/gson/JsonNull;->INSTANCE:Lcom/google/gson/JsonNull;
  1700. return-object v0
  1701. .line 576
  1702. :cond_0
  1703. invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
  1704. move-result-object v0
  1705. invoke-virtual {p0, p1, v0}, Lcom/google/gson/Gson;->toJsonTree(Ljava/lang/Object;Ljava/lang/reflect/Type;)Lcom/google/gson/JsonElement;
  1706. move-result-object v0
  1707. return-object v0
  1708. .end method
  1709. .method public toJsonTree(Ljava/lang/Object;Ljava/lang/reflect/Type;)Lcom/google/gson/JsonElement;
  1710. .locals 2
  1711. .param p1, "src" # Ljava/lang/Object;
  1712. .param p2, "typeOfSrc" # Ljava/lang/reflect/Type;
  1713. .line 596
  1714. new-instance v0, Lcom/google/gson/internal/bind/JsonTreeWriter;
  1715. invoke-direct {v0}, Lcom/google/gson/internal/bind/JsonTreeWriter;-><init>()V
  1716. .line 597
  1717. .local v0, "writer":Lcom/google/gson/internal/bind/JsonTreeWriter;
  1718. invoke-virtual {p0, p1, p2, v0}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/stream/JsonWriter;)V
  1719. .line 598
  1720. invoke-virtual {v0}, Lcom/google/gson/internal/bind/JsonTreeWriter;->get()Lcom/google/gson/JsonElement;
  1721. move-result-object v1
  1722. return-object v1
  1723. .end method
  1724. .method public toString()Ljava/lang/String;
  1725. .locals 2
  1726. .line 1024
  1727. new-instance v0, Ljava/lang/StringBuilder;
  1728. const-string v1, "{serializeNulls:"
  1729. invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
  1730. iget-boolean v1, p0, Lcom/google/gson/Gson;->serializeNulls:Z
  1731. .line 1025
  1732. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
  1733. .line 1026
  1734. const-string v1, ",factories:"
  1735. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1736. iget-object v1, p0, Lcom/google/gson/Gson;->factories:Ljava/util/List;
  1737. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  1738. .line 1027
  1739. const-string v1, ",instanceCreators:"
  1740. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1741. iget-object v1, p0, Lcom/google/gson/Gson;->constructorConstructor:Lcom/google/gson/internal/ConstructorConstructor;
  1742. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  1743. .line 1028
  1744. const-string v1, "}"
  1745. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1746. .line 1029
  1747. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  1748. move-result-object v0
  1749. .line 1024
  1750. return-object v0
  1751. .end method