ReflectiveTypeAdapterFactory$1.smali 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. .class Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;
  2. .super Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;
  3. .source ""
  4. # annotations
  5. .annotation system Ldalvik/annotation/EnclosingMethod;
  6. value = Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;->createBoundField(Lcom/google/gson/Gson;Ljava/lang/reflect/Field;Ljava/lang/String;Lcom/google/gson/reflect/TypeToken;ZZ)Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;
  7. .end annotation
  8. .annotation system Ldalvik/annotation/InnerClass;
  9. accessFlags = 0x0
  10. name = null
  11. .end annotation
  12. # instance fields
  13. .field final synthetic this$0:Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;
  14. .field final synthetic val$context:Lcom/google/gson/Gson;
  15. .field final synthetic val$field:Ljava/lang/reflect/Field;
  16. .field final synthetic val$fieldType:Lcom/google/gson/reflect/TypeToken;
  17. .field final synthetic val$isPrimitive:Z
  18. .field final synthetic val$jsonAdapterPresent:Z
  19. .field final synthetic val$typeAdapter:Lcom/google/gson/TypeAdapter;
  20. # direct methods
  21. .method constructor <init>(Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;Ljava/lang/String;ZZLjava/lang/reflect/Field;ZLcom/google/gson/TypeAdapter;Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;Z)V
  22. .locals 0
  23. iput-object p1, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->this$0:Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory;
  24. iput-object p5, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$field:Ljava/lang/reflect/Field;
  25. iput-boolean p6, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$jsonAdapterPresent:Z
  26. iput-object p7, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$typeAdapter:Lcom/google/gson/TypeAdapter;
  27. iput-object p8, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$context:Lcom/google/gson/Gson;
  28. iput-object p9, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$fieldType:Lcom/google/gson/reflect/TypeToken;
  29. iput-boolean p10, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$isPrimitive:Z
  30. invoke-direct {p0, p2, p3, p4}, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;-><init>(Ljava/lang/String;ZZ)V
  31. return-void
  32. .end method
  33. # virtual methods
  34. .method read(Lcom/google/gson/stream/JsonReader;Ljava/lang/Object;)V
  35. .locals 1
  36. .annotation system Ldalvik/annotation/Throws;
  37. value = {
  38. Ljava/io/IOException;,
  39. Ljava/lang/IllegalAccessException;
  40. }
  41. .end annotation
  42. iget-object v0, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$typeAdapter:Lcom/google/gson/TypeAdapter;
  43. invoke-virtual {v0, p1}, Lcom/google/gson/TypeAdapter;->read(Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object;
  44. move-result-object p1
  45. if-nez p1, :cond_0
  46. iget-boolean v0, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$isPrimitive:Z
  47. if-nez v0, :cond_1
  48. :cond_0
  49. iget-object v0, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$field:Ljava/lang/reflect/Field;
  50. invoke-virtual {v0, p2, p1}, Ljava/lang/reflect/Field;->set(Ljava/lang/Object;Ljava/lang/Object;)V
  51. :cond_1
  52. return-void
  53. .end method
  54. .method write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V
  55. .locals 4
  56. .annotation system Ldalvik/annotation/Throws;
  57. value = {
  58. Ljava/io/IOException;,
  59. Ljava/lang/IllegalAccessException;
  60. }
  61. .end annotation
  62. iget-object v0, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$field:Ljava/lang/reflect/Field;
  63. invoke-virtual {v0, p2}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
  64. move-result-object p2
  65. iget-boolean v0, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$jsonAdapterPresent:Z
  66. if-eqz v0, :cond_0
  67. iget-object v0, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$typeAdapter:Lcom/google/gson/TypeAdapter;
  68. goto :goto_0
  69. :cond_0
  70. new-instance v0, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;
  71. iget-object v1, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$context:Lcom/google/gson/Gson;
  72. iget-object v2, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$typeAdapter:Lcom/google/gson/TypeAdapter;
  73. iget-object v3, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$fieldType:Lcom/google/gson/reflect/TypeToken;
  74. invoke-virtual {v3}, Lcom/google/gson/reflect/TypeToken;->getType()Ljava/lang/reflect/Type;
  75. move-result-object v3
  76. invoke-direct {v0, v1, v2, v3}, Lcom/google/gson/internal/bind/TypeAdapterRuntimeTypeWrapper;-><init>(Lcom/google/gson/Gson;Lcom/google/gson/TypeAdapter;Ljava/lang/reflect/Type;)V
  77. :goto_0
  78. invoke-virtual {v0, p1, p2}, Lcom/google/gson/TypeAdapter;->write(Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V
  79. return-void
  80. .end method
  81. .method public writeField(Ljava/lang/Object;)Z
  82. .locals 2
  83. .annotation system Ldalvik/annotation/Throws;
  84. value = {
  85. Ljava/io/IOException;,
  86. Ljava/lang/IllegalAccessException;
  87. }
  88. .end annotation
  89. iget-boolean v0, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$BoundField;->serialized:Z
  90. const/4 v1, 0x0
  91. if-nez v0, :cond_0
  92. return v1
  93. :cond_0
  94. iget-object v0, p0, Lcom/google/gson/internal/bind/ReflectiveTypeAdapterFactory$1;->val$field:Ljava/lang/reflect/Field;
  95. invoke-virtual {v0, p1}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
  96. move-result-object v0
  97. if-eq v0, p1, :cond_1
  98. const/4 v1, 0x1
  99. :cond_1
  100. return v1
  101. .end method