ArrayTypeAdapter$1.smali 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. .class final Lcom/google/gson/internal/bind/ArrayTypeAdapter$1;
  2. .super Ljava/lang/Object;
  3. .source ""
  4. # interfaces
  5. .implements Lcom/google/gson/TypeAdapterFactory;
  6. # annotations
  7. .annotation system Ldalvik/annotation/EnclosingClass;
  8. value = Lcom/google/gson/internal/bind/ArrayTypeAdapter;
  9. .end annotation
  10. .annotation system Ldalvik/annotation/InnerClass;
  11. accessFlags = 0x8
  12. name = null
  13. .end annotation
  14. # direct methods
  15. .method constructor <init>()V
  16. .locals 0
  17. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  18. return-void
  19. .end method
  20. # virtual methods
  21. .method public create(Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
  22. .locals 2
  23. .annotation system Ldalvik/annotation/Signature;
  24. value = {
  25. "<T:",
  26. "Ljava/lang/Object;",
  27. ">(",
  28. "Lcom/google/gson/Gson;",
  29. "Lcom/google/gson/reflect/TypeToken<",
  30. "TT;>;)",
  31. "Lcom/google/gson/TypeAdapter<",
  32. "TT;>;"
  33. }
  34. .end annotation
  35. invoke-virtual {p2}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type;
  36. move-result-object p2
  37. instance-of v0, p2, Ljava/lang/reflect/GenericArrayType;
  38. if-nez v0, :cond_1
  39. instance-of v0, p2, Ljava/lang/Class;
  40. if-eqz v0, :cond_0
  41. move-object v0, p2
  42. check-cast v0, Ljava/lang/Class;
  43. invoke-virtual {v0}, Ljava/lang/Class;->isArray()Z
  44. move-result v0
  45. if-nez v0, :cond_1
  46. :cond_0
  47. const/4 p1, 0x0
  48. return-object p1
  49. :cond_1
  50. invoke-static {p2}, Lcom/google/gson/internal/$Gson$Types;->getArrayComponentType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
  51. move-result-object p2
  52. invoke-static {p2}, Lcom/google/gson/reflect/TypeToken;->get(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
  53. move-result-object v0
  54. invoke-virtual {p1, v0}, Lcom/google/gson/Gson;->getAdapter(Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;
  55. move-result-object v0
  56. new-instance v1, Lcom/google/gson/internal/bind/ArrayTypeAdapter;
  57. invoke-static {p2}, Lcom/google/gson/internal/$Gson$Types;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
  58. move-result-object p2
  59. invoke-direct {v1, p1, v0, p2}, Lcom/google/gson/internal/bind/ArrayTypeAdapter;-><init>(Lcom/google/gson/Gson;Lcom/google/gson/TypeAdapter;Ljava/lang/Class;)V
  60. return-object v1
  61. .end method