MapCollections.smali 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630
  1. .class abstract Landroid/support/v4/util/MapCollections;
  2. .super Ljava/lang/Object;
  3. .source "MapCollections.java"
  4. # annotations
  5. .annotation system Ldalvik/annotation/MemberClasses;
  6. value = {
  7. Landroid/support/v4/util/MapCollections$ValuesCollection;,
  8. Landroid/support/v4/util/MapCollections$KeySet;,
  9. Landroid/support/v4/util/MapCollections$EntrySet;,
  10. Landroid/support/v4/util/MapCollections$MapIterator;,
  11. Landroid/support/v4/util/MapCollections$ArrayIterator;
  12. }
  13. .end annotation
  14. .annotation system Ldalvik/annotation/Signature;
  15. value = {
  16. "<K:",
  17. "Ljava/lang/Object;",
  18. "V:",
  19. "Ljava/lang/Object;",
  20. ">",
  21. "Ljava/lang/Object;"
  22. }
  23. .end annotation
  24. # instance fields
  25. .field mEntrySet:Landroid/support/v4/util/MapCollections$EntrySet;
  26. .annotation system Ldalvik/annotation/Signature;
  27. value = {
  28. "Landroid/support/v4/util/MapCollections",
  29. "<TK;TV;>.EntrySet;"
  30. }
  31. .end annotation
  32. .end field
  33. .field mKeySet:Landroid/support/v4/util/MapCollections$KeySet;
  34. .annotation system Ldalvik/annotation/Signature;
  35. value = {
  36. "Landroid/support/v4/util/MapCollections",
  37. "<TK;TV;>.KeySet;"
  38. }
  39. .end annotation
  40. .end field
  41. .field mValues:Landroid/support/v4/util/MapCollections$ValuesCollection;
  42. .annotation system Ldalvik/annotation/Signature;
  43. value = {
  44. "Landroid/support/v4/util/MapCollections",
  45. "<TK;TV;>.ValuesCollection;"
  46. }
  47. .end annotation
  48. .end field
  49. # direct methods
  50. .method constructor <init>()V
  51. .locals 0
  52. .prologue
  53. .line 30
  54. .local p0, "this":Landroid/support/v4/util/MapCollections;, "Landroid/support/v4/util/MapCollections<TK;TV;>;"
  55. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  56. .line 353
  57. return-void
  58. .end method
  59. .method public static containsAllHelper(Ljava/util/Map;Ljava/util/Collection;)Z
  60. .locals 2
  61. .annotation system Ldalvik/annotation/Signature;
  62. value = {
  63. "<K:",
  64. "Ljava/lang/Object;",
  65. "V:",
  66. "Ljava/lang/Object;",
  67. ">(",
  68. "Ljava/util/Map",
  69. "<TK;TV;>;",
  70. "Ljava/util/Collection",
  71. "<*>;)Z"
  72. }
  73. .end annotation
  74. .prologue
  75. .line 455
  76. .local p0, "map":Ljava/util/Map;, "Ljava/util/Map<TK;TV;>;"
  77. .local p1, "collection":Ljava/util/Collection;, "Ljava/util/Collection<*>;"
  78. invoke-interface {p1}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
  79. move-result-object v0
  80. .line 456
  81. .local v0, "it":Ljava/util/Iterator;, "Ljava/util/Iterator<*>;"
  82. :cond_0
  83. invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
  84. move-result v1
  85. if-eqz v1, :cond_1
  86. .line 457
  87. invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  88. move-result-object v1
  89. invoke-interface {p0, v1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
  90. move-result v1
  91. if-nez v1, :cond_0
  92. .line 458
  93. const/4 v1, 0x0
  94. .line 461
  95. :goto_0
  96. return v1
  97. :cond_1
  98. const/4 v1, 0x1
  99. goto :goto_0
  100. .end method
  101. .method public static equalsSetHelper(Ljava/util/Set;Ljava/lang/Object;)Z
  102. .locals 6
  103. .param p1, "object" # Ljava/lang/Object;
  104. .annotation system Ldalvik/annotation/Signature;
  105. value = {
  106. "<T:",
  107. "Ljava/lang/Object;",
  108. ">(",
  109. "Ljava/util/Set",
  110. "<TT;>;",
  111. "Ljava/lang/Object;",
  112. ")Z"
  113. }
  114. .end annotation
  115. .prologue
  116. .local p0, "set":Ljava/util/Set;, "Ljava/util/Set<TT;>;"
  117. const/4 v2, 0x1
  118. const/4 v3, 0x0
  119. .line 511
  120. if-ne p0, p1, :cond_1
  121. move v3, v2
  122. .line 525
  123. :cond_0
  124. :goto_0
  125. return v3
  126. .line 514
  127. :cond_1
  128. instance-of v4, p1, Ljava/util/Set;
  129. if-eqz v4, :cond_0
  130. move-object v1, p1
  131. .line 515
  132. check-cast v1, Ljava/util/Set;
  133. .line 518
  134. .local v1, "s":Ljava/util/Set;, "Ljava/util/Set<*>;"
  135. :try_start_0
  136. invoke-interface {p0}, Ljava/util/Set;->size()I
  137. move-result v4
  138. invoke-interface {v1}, Ljava/util/Set;->size()I
  139. move-result v5
  140. if-ne v4, v5, :cond_2
  141. invoke-interface {p0, v1}, Ljava/util/Set;->containsAll(Ljava/util/Collection;)Z
  142. :try_end_0
  143. .catch Ljava/lang/NullPointerException; {:try_start_0 .. :try_end_0} :catch_0
  144. .catch Ljava/lang/ClassCastException; {:try_start_0 .. :try_end_0} :catch_1
  145. move-result v4
  146. if-eqz v4, :cond_2
  147. :goto_1
  148. move v3, v2
  149. goto :goto_0
  150. :cond_2
  151. move v2, v3
  152. goto :goto_1
  153. .line 519
  154. :catch_0
  155. move-exception v0
  156. .line 520
  157. .local v0, "ignored":Ljava/lang/NullPointerException;
  158. goto :goto_0
  159. .line 521
  160. .end local v0 # "ignored":Ljava/lang/NullPointerException;
  161. :catch_1
  162. move-exception v0
  163. .line 522
  164. .local v0, "ignored":Ljava/lang/ClassCastException;
  165. goto :goto_0
  166. .end method
  167. .method public static removeAllHelper(Ljava/util/Map;Ljava/util/Collection;)Z
  168. .locals 3
  169. .annotation system Ldalvik/annotation/Signature;
  170. value = {
  171. "<K:",
  172. "Ljava/lang/Object;",
  173. "V:",
  174. "Ljava/lang/Object;",
  175. ">(",
  176. "Ljava/util/Map",
  177. "<TK;TV;>;",
  178. "Ljava/util/Collection",
  179. "<*>;)Z"
  180. }
  181. .end annotation
  182. .prologue
  183. .line 465
  184. .local p0, "map":Ljava/util/Map;, "Ljava/util/Map<TK;TV;>;"
  185. .local p1, "collection":Ljava/util/Collection;, "Ljava/util/Collection<*>;"
  186. invoke-interface {p0}, Ljava/util/Map;->size()I
  187. move-result v1
  188. .line 466
  189. .local v1, "oldSize":I
  190. invoke-interface {p1}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
  191. move-result-object v0
  192. .line 467
  193. .local v0, "it":Ljava/util/Iterator;, "Ljava/util/Iterator<*>;"
  194. :goto_0
  195. invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
  196. move-result v2
  197. if-eqz v2, :cond_0
  198. .line 468
  199. invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  200. move-result-object v2
  201. invoke-interface {p0, v2}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
  202. goto :goto_0
  203. .line 470
  204. :cond_0
  205. invoke-interface {p0}, Ljava/util/Map;->size()I
  206. move-result v2
  207. if-eq v1, v2, :cond_1
  208. const/4 v2, 0x1
  209. :goto_1
  210. return v2
  211. :cond_1
  212. const/4 v2, 0x0
  213. goto :goto_1
  214. .end method
  215. .method public static retainAllHelper(Ljava/util/Map;Ljava/util/Collection;)Z
  216. .locals 3
  217. .annotation system Ldalvik/annotation/Signature;
  218. value = {
  219. "<K:",
  220. "Ljava/lang/Object;",
  221. "V:",
  222. "Ljava/lang/Object;",
  223. ">(",
  224. "Ljava/util/Map",
  225. "<TK;TV;>;",
  226. "Ljava/util/Collection",
  227. "<*>;)Z"
  228. }
  229. .end annotation
  230. .prologue
  231. .line 474
  232. .local p0, "map":Ljava/util/Map;, "Ljava/util/Map<TK;TV;>;"
  233. .local p1, "collection":Ljava/util/Collection;, "Ljava/util/Collection<*>;"
  234. invoke-interface {p0}, Ljava/util/Map;->size()I
  235. move-result v1
  236. .line 475
  237. .local v1, "oldSize":I
  238. invoke-interface {p0}, Ljava/util/Map;->keySet()Ljava/util/Set;
  239. move-result-object v2
  240. invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
  241. move-result-object v0
  242. .line 476
  243. .local v0, "it":Ljava/util/Iterator;, "Ljava/util/Iterator<TK;>;"
  244. :cond_0
  245. :goto_0
  246. invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
  247. move-result v2
  248. if-eqz v2, :cond_1
  249. .line 477
  250. invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  251. move-result-object v2
  252. invoke-interface {p1, v2}, Ljava/util/Collection;->contains(Ljava/lang/Object;)Z
  253. move-result v2
  254. if-nez v2, :cond_0
  255. .line 478
  256. invoke-interface {v0}, Ljava/util/Iterator;->remove()V
  257. goto :goto_0
  258. .line 481
  259. :cond_1
  260. invoke-interface {p0}, Ljava/util/Map;->size()I
  261. move-result v2
  262. if-eq v1, v2, :cond_2
  263. const/4 v2, 0x1
  264. :goto_1
  265. return v2
  266. :cond_2
  267. const/4 v2, 0x0
  268. goto :goto_1
  269. .end method
  270. # virtual methods
  271. .method protected abstract colClear()V
  272. .end method
  273. .method protected abstract colGetEntry(II)Ljava/lang/Object;
  274. .end method
  275. .method protected abstract colGetMap()Ljava/util/Map;
  276. .annotation system Ldalvik/annotation/Signature;
  277. value = {
  278. "()",
  279. "Ljava/util/Map",
  280. "<TK;TV;>;"
  281. }
  282. .end annotation
  283. .end method
  284. .method protected abstract colGetSize()I
  285. .end method
  286. .method protected abstract colIndexOfKey(Ljava/lang/Object;)I
  287. .end method
  288. .method protected abstract colIndexOfValue(Ljava/lang/Object;)I
  289. .end method
  290. .method protected abstract colPut(Ljava/lang/Object;Ljava/lang/Object;)V
  291. .annotation system Ldalvik/annotation/Signature;
  292. value = {
  293. "(TK;TV;)V"
  294. }
  295. .end annotation
  296. .end method
  297. .method protected abstract colRemoveAt(I)V
  298. .end method
  299. .method protected abstract colSetValue(ILjava/lang/Object;)Ljava/lang/Object;
  300. .annotation system Ldalvik/annotation/Signature;
  301. value = {
  302. "(ITV;)TV;"
  303. }
  304. .end annotation
  305. .end method
  306. .method public getEntrySet()Ljava/util/Set;
  307. .locals 1
  308. .annotation system Ldalvik/annotation/Signature;
  309. value = {
  310. "()",
  311. "Ljava/util/Set",
  312. "<",
  313. "Ljava/util/Map$Entry",
  314. "<TK;TV;>;>;"
  315. }
  316. .end annotation
  317. .prologue
  318. .line 529
  319. .local p0, "this":Landroid/support/v4/util/MapCollections;, "Landroid/support/v4/util/MapCollections<TK;TV;>;"
  320. iget-object v0, p0, Landroid/support/v4/util/MapCollections;->mEntrySet:Landroid/support/v4/util/MapCollections$EntrySet;
  321. if-nez v0, :cond_0
  322. .line 530
  323. new-instance v0, Landroid/support/v4/util/MapCollections$EntrySet;
  324. invoke-direct {v0, p0}, Landroid/support/v4/util/MapCollections$EntrySet;-><init>(Landroid/support/v4/util/MapCollections;)V
  325. iput-object v0, p0, Landroid/support/v4/util/MapCollections;->mEntrySet:Landroid/support/v4/util/MapCollections$EntrySet;
  326. .line 532
  327. :cond_0
  328. iget-object v0, p0, Landroid/support/v4/util/MapCollections;->mEntrySet:Landroid/support/v4/util/MapCollections$EntrySet;
  329. return-object v0
  330. .end method
  331. .method public getKeySet()Ljava/util/Set;
  332. .locals 1
  333. .annotation system Ldalvik/annotation/Signature;
  334. value = {
  335. "()",
  336. "Ljava/util/Set",
  337. "<TK;>;"
  338. }
  339. .end annotation
  340. .prologue
  341. .line 536
  342. .local p0, "this":Landroid/support/v4/util/MapCollections;, "Landroid/support/v4/util/MapCollections<TK;TV;>;"
  343. iget-object v0, p0, Landroid/support/v4/util/MapCollections;->mKeySet:Landroid/support/v4/util/MapCollections$KeySet;
  344. if-nez v0, :cond_0
  345. .line 537
  346. new-instance v0, Landroid/support/v4/util/MapCollections$KeySet;
  347. invoke-direct {v0, p0}, Landroid/support/v4/util/MapCollections$KeySet;-><init>(Landroid/support/v4/util/MapCollections;)V
  348. iput-object v0, p0, Landroid/support/v4/util/MapCollections;->mKeySet:Landroid/support/v4/util/MapCollections$KeySet;
  349. .line 539
  350. :cond_0
  351. iget-object v0, p0, Landroid/support/v4/util/MapCollections;->mKeySet:Landroid/support/v4/util/MapCollections$KeySet;
  352. return-object v0
  353. .end method
  354. .method public getValues()Ljava/util/Collection;
  355. .locals 1
  356. .annotation system Ldalvik/annotation/Signature;
  357. value = {
  358. "()",
  359. "Ljava/util/Collection",
  360. "<TV;>;"
  361. }
  362. .end annotation
  363. .prologue
  364. .line 543
  365. .local p0, "this":Landroid/support/v4/util/MapCollections;, "Landroid/support/v4/util/MapCollections<TK;TV;>;"
  366. iget-object v0, p0, Landroid/support/v4/util/MapCollections;->mValues:Landroid/support/v4/util/MapCollections$ValuesCollection;
  367. if-nez v0, :cond_0
  368. .line 544
  369. new-instance v0, Landroid/support/v4/util/MapCollections$ValuesCollection;
  370. invoke-direct {v0, p0}, Landroid/support/v4/util/MapCollections$ValuesCollection;-><init>(Landroid/support/v4/util/MapCollections;)V
  371. iput-object v0, p0, Landroid/support/v4/util/MapCollections;->mValues:Landroid/support/v4/util/MapCollections$ValuesCollection;
  372. .line 546
  373. :cond_0
  374. iget-object v0, p0, Landroid/support/v4/util/MapCollections;->mValues:Landroid/support/v4/util/MapCollections$ValuesCollection;
  375. return-object v0
  376. .end method
  377. .method public toArrayHelper(I)[Ljava/lang/Object;
  378. .locals 4
  379. .param p1, "offset" # I
  380. .prologue
  381. .line 486
  382. .local p0, "this":Landroid/support/v4/util/MapCollections;, "Landroid/support/v4/util/MapCollections<TK;TV;>;"
  383. invoke-virtual {p0}, Landroid/support/v4/util/MapCollections;->colGetSize()I
  384. move-result v0
  385. .line 487
  386. .local v0, "N":I
  387. new-array v2, v0, [Ljava/lang/Object;
  388. .line 488
  389. .local v2, "result":[Ljava/lang/Object;
  390. const/4 v1, 0x0
  391. .local v1, "i":I
  392. :goto_0
  393. if-ge v1, v0, :cond_0
  394. .line 489
  395. invoke-virtual {p0, v1, p1}, Landroid/support/v4/util/MapCollections;->colGetEntry(II)Ljava/lang/Object;
  396. move-result-object v3
  397. aput-object v3, v2, v1
  398. .line 488
  399. add-int/lit8 v1, v1, 0x1
  400. goto :goto_0
  401. .line 491
  402. :cond_0
  403. return-object v2
  404. .end method
  405. .method public toArrayHelper([Ljava/lang/Object;I)[Ljava/lang/Object;
  406. .locals 4
  407. .param p2, "offset" # I
  408. .annotation system Ldalvik/annotation/Signature;
  409. value = {
  410. "<T:",
  411. "Ljava/lang/Object;",
  412. ">([TT;I)[TT;"
  413. }
  414. .end annotation
  415. .prologue
  416. .line 495
  417. .local p0, "this":Landroid/support/v4/util/MapCollections;, "Landroid/support/v4/util/MapCollections<TK;TV;>;"
  418. .local p1, "array":[Ljava/lang/Object;, "[TT;"
  419. invoke-virtual {p0}, Landroid/support/v4/util/MapCollections;->colGetSize()I
  420. move-result v0
  421. .line 496
  422. .local v0, "N":I
  423. array-length v3, p1
  424. if-ge v3, v0, :cond_0
  425. .line 497
  426. invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
  427. move-result-object v3
  428. invoke-virtual {v3}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
  429. move-result-object v3
  430. invoke-static {v3, v0}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;I)Ljava/lang/Object;
  431. move-result-object v3
  432. check-cast v3, [Ljava/lang/Object;
  433. move-object v2, v3
  434. check-cast v2, [Ljava/lang/Object;
  435. .line 499
  436. .local v2, "newArray":[Ljava/lang/Object;, "[TT;"
  437. move-object p1, v2
  438. .line 501
  439. .end local v2 # "newArray":[Ljava/lang/Object;, "[TT;"
  440. :cond_0
  441. const/4 v1, 0x0
  442. .local v1, "i":I
  443. :goto_0
  444. if-ge v1, v0, :cond_1
  445. .line 502
  446. invoke-virtual {p0, v1, p2}, Landroid/support/v4/util/MapCollections;->colGetEntry(II)Ljava/lang/Object;
  447. move-result-object v3
  448. aput-object v3, p1, v1
  449. .line 501
  450. add-int/lit8 v1, v1, 0x1
  451. goto :goto_0
  452. .line 504
  453. :cond_1
  454. array-length v3, p1
  455. if-le v3, v0, :cond_2
  456. .line 505
  457. const/4 v3, 0x0
  458. aput-object v3, p1, v0
  459. .line 507
  460. :cond_2
  461. return-object p1
  462. .end method