MapSerializer.smali
.class public Lcom/tradplus/ads/common/serialization/serializer/MapSerializer;
.super Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;
# interfaces
.implements Lcom/tradplus/ads/common/serialization/serializer/ObjectSerializer;
# static fields
.field private static final a:I
.field public static instance:Lcom/tradplus/ads/common/serialization/serializer/MapSerializer;
# direct methods
.method static constructor <clinit>()V
.registers 3
new-instance v0, Lcom/tradplus/ads/common/serialization/serializer/MapSerializer;
invoke-direct {v0}, Lcom/tradplus/ads/common/serialization/serializer/MapSerializer;-><init>()V
sput-object v0, Lcom/tradplus/ads/common/serialization/serializer/MapSerializer;->instance:Lcom/tradplus/ads/common/serialization/serializer/MapSerializer;
const/4 v0, 0x3
new-array v0, v0, [Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;
sget-object v1, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->BrowserCompatible:Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;
const/4 v2, 0x0
aput-object v1, v0, v2
sget-object v1, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->WriteNonStringKeyAsString:Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;
const/4 v2, 0x1
aput-object v1, v0, v2
sget-object v1, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->BrowserSecure:Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;
const/4 v2, 0x2
aput-object v1, v0, v2
invoke-static {v0}, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->of([Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;)I
move-result v0
sput v0, Lcom/tradplus/ads/common/serialization/serializer/MapSerializer;->a:I
return-void
.end method
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;-><init>()V
return-void
.end method
# virtual methods
.method public write(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V
.registers 13
const/4 v6, 0x0
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, p3
move-object v4, p4
move v5, p5
invoke-virtual/range {v0 .. v6}, Lcom/tradplus/ads/common/serialization/serializer/MapSerializer;->write(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;IZ)V
return-void
.end method
.method public write(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;IZ)V
.registers 30
move-object/from16 v8, p0
move-object/from16 v9, p1
move-object/from16 v0, p2
move-object/from16 v10, p4
move/from16 v11, p5
iget-object v12, v9, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->out:Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;
if-nez v0, :cond_12
invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->writeNull()V
return-void
:cond_12
move-object v1, v0
check-cast v1, Ljava/util/Map;
sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->MapSortField:Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;
iget v2, v2, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->mask:I
iget v3, v12, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->c:I
and-int/2addr v3, v2
if-nez v3, :cond_24
and-int/2addr v2, v11
if-eqz v2, :cond_22
goto :goto_24
:catch_22
:cond_22
move-object v13, v1
goto :goto_3c
:cond_24
:goto_24
instance-of v2, v1, Lcom/tradplus/ads/common/serialization/JSONObject;
if-eqz v2, :cond_2e
check-cast v1, Lcom/tradplus/ads/common/serialization/JSONObject;
invoke-virtual {v1}, Lcom/tradplus/ads/common/serialization/JSONObject;->getInnerMap()Ljava/util/Map;
move-result-object v1
:cond_2e
instance-of v2, v1, Ljava/util/SortedMap;
if-nez v2, :cond_22
instance-of v2, v1, Ljava/util/LinkedHashMap;
if-nez v2, :cond_22
:try_start_36
new-instance v2, Ljava/util/TreeMap;
invoke-direct {v2, v1}, Ljava/util/TreeMap;-><init>(Ljava/util/Map;)V
:try_end_3b
.catch Ljava/lang/Exception; {:try_start_36 .. :try_end_3b} :catch_22
move-object v13, v2
:goto_3c
invoke-virtual/range {p1 .. p2}, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->containsReference(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_46
invoke-virtual/range {p1 .. p2}, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->writeReference(Ljava/lang/Object;)V
return-void
:cond_46
iget-object v14, v9, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->c:Lcom/tradplus/ads/common/serialization/serializer/SerialContext;
const/4 v15, 0x0
move-object/from16 v1, p3
invoke-virtual {v9, v14, v0, v1, v15}, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->setContext(Lcom/tradplus/ads/common/serialization/serializer/SerialContext;Ljava/lang/Object;Ljava/lang/Object;I)V
if-nez p6, :cond_55
const/16 v1, 0x7b
:try_start_52
invoke-virtual {v12, v1}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
:cond_55
invoke-virtual/range {p1 .. p1}, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->incrementIndent()V
sget-object v1, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->WriteClassName:Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;
invoke-virtual {v12, v1}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->isEnabled(Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;)Z
move-result v1
const/4 v7, 0x1
if-eqz v1, :cond_90
iget-object v1, v9, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->a:Lcom/tradplus/ads/common/serialization/serializer/SerializeConfig;
iget-object v1, v1, Lcom/tradplus/ads/common/serialization/serializer/SerializeConfig;->a:Ljava/lang/String;
invoke-virtual {v13}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
const-class v3, Lcom/tradplus/ads/common/serialization/JSONObject;
if-eq v2, v3, :cond_75
const-class v3, Ljava/util/HashMap;
if-eq v2, v3, :cond_75
const-class v3, Ljava/util/LinkedHashMap;
if-ne v2, v3, :cond_7d
:cond_75
invoke-interface {v13, v1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_7d
const/4 v2, 0x1
goto :goto_7e
:cond_7d
const/4 v2, 0x0
:goto_7e
if-nez v2, :cond_90
invoke-virtual {v12, v1}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V
invoke-virtual/range {p2 .. p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v12, v1}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->writeString(Ljava/lang/String;)V
const/4 v1, 0x0
goto :goto_91
:cond_90
const/4 v1, 0x1
:goto_91
invoke-interface {v13}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v2
invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v16
const/16 v17, 0x0
move/from16 v18, v1
move-object/from16 v6, v17
move-object/from16 v19, v6
:goto_a1
invoke-interface/range {v16 .. v16}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_2f0
invoke-interface/range {v16 .. v16}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/util/Map$Entry;
invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v5
invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
iget-object v2, v9, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->k:Ljava/util/List;
if-eqz v2, :cond_ed
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v2
if-lez v2, :cond_ed
if-eqz v1, :cond_df
instance-of v2, v1, Ljava/lang/String;
if-eqz v2, :cond_c6
goto :goto_df
:cond_c6
invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->isPrimitive()Z
move-result v2
if-nez v2, :cond_d4
instance-of v2, v1, Ljava/lang/Number;
if-eqz v2, :cond_ed
:cond_d4
invoke-static {v1}, Lcom/tradplus/ads/common/serialization/JSON;->toJSONString(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v8, v9, v0, v2}, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->applyName(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_ed
goto :goto_e8
:cond_df
:goto_df
move-object v2, v1
check-cast v2, Ljava/lang/String;
invoke-virtual {v8, v9, v0, v2}, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->applyName(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_ed
:goto_e8
move-object/from16 v22, v6
const/4 v0, 0x1
goto/16 :goto_241
:cond_ed
iget-object v2, v8, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->k:Ljava/util/List;
if-eqz v2, :cond_121
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v2
if-lez v2, :cond_121
if-eqz v1, :cond_117
instance-of v2, v1, Ljava/lang/String;
if-eqz v2, :cond_fe
goto :goto_117
:cond_fe
invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->isPrimitive()Z
move-result v2
if-nez v2, :cond_10c
instance-of v2, v1, Ljava/lang/Number;
if-eqz v2, :cond_121
:cond_10c
invoke-static {v1}, Lcom/tradplus/ads/common/serialization/JSON;->toJSONString(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v8, v9, v0, v2}, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->applyName(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_121
goto :goto_e8
:cond_117
:goto_117
move-object v2, v1
check-cast v2, Ljava/lang/String;
invoke-virtual {v8, v9, v0, v2}, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->applyName(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_121
goto :goto_e8
:cond_121
iget-object v2, v9, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->h:Ljava/util/List;
if-eqz v2, :cond_155
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v2
if-lez v2, :cond_155
if-eqz v1, :cond_14b
instance-of v2, v1, Ljava/lang/String;
if-eqz v2, :cond_132
goto :goto_14b
:cond_132
invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->isPrimitive()Z
move-result v2
if-nez v2, :cond_140
instance-of v2, v1, Ljava/lang/Number;
if-eqz v2, :cond_155
:cond_140
invoke-static {v1}, Lcom/tradplus/ads/common/serialization/JSON;->toJSONString(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v8, v9, v0, v2, v5}, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->apply(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_155
goto :goto_e8
:cond_14b
:goto_14b
move-object v2, v1
check-cast v2, Ljava/lang/String;
invoke-virtual {v8, v9, v0, v2, v5}, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->apply(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_155
goto :goto_e8
:cond_155
iget-object v2, v8, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->h:Ljava/util/List;
if-eqz v2, :cond_18b
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v2
if-lez v2, :cond_18b
if-eqz v1, :cond_180
instance-of v2, v1, Ljava/lang/String;
if-eqz v2, :cond_166
goto :goto_180
:cond_166
invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->isPrimitive()Z
move-result v2
if-nez v2, :cond_174
instance-of v2, v1, Ljava/lang/Number;
if-eqz v2, :cond_18b
:cond_174
invoke-static {v1}, Lcom/tradplus/ads/common/serialization/JSON;->toJSONString(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v8, v9, v0, v2, v5}, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->apply(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_18b
goto/16 :goto_e8
:cond_180
:goto_180
move-object v2, v1
check-cast v2, Ljava/lang/String;
invoke-virtual {v8, v9, v0, v2, v5}, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->apply(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_18b
goto/16 :goto_e8
:cond_18b
iget-object v2, v9, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->j:Ljava/util/List;
if-eqz v2, :cond_1b6
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v2
if-lez v2, :cond_1b6
if-eqz v1, :cond_1b3
instance-of v2, v1, Ljava/lang/String;
if-eqz v2, :cond_19c
goto :goto_1b3
:cond_19c
invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->isPrimitive()Z
move-result v2
if-nez v2, :cond_1aa
instance-of v2, v1, Ljava/lang/Number;
if-eqz v2, :cond_1b6
:cond_1aa
invoke-static {v1}, Lcom/tradplus/ads/common/serialization/JSON;->toJSONString(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
:goto_1ae
invoke-virtual {v8, v9, v0, v1, v5}, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->a(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
goto :goto_1b6
:cond_1b3
:goto_1b3
check-cast v1, Ljava/lang/String;
goto :goto_1ae
:cond_1b6
:goto_1b6
iget-object v2, v8, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->j:Ljava/util/List;
if-eqz v2, :cond_1e1
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v2
if-lez v2, :cond_1e1
if-eqz v1, :cond_1de
instance-of v2, v1, Ljava/lang/String;
if-eqz v2, :cond_1c7
goto :goto_1de
:cond_1c7
invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->isPrimitive()Z
move-result v2
if-nez v2, :cond_1d5
instance-of v2, v1, Ljava/lang/Number;
if-eqz v2, :cond_1e1
:cond_1d5
invoke-static {v1}, Lcom/tradplus/ads/common/serialization/JSON;->toJSONString(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
:goto_1d9
invoke-virtual {v8, v9, v0, v1, v5}, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->a(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
goto :goto_1e1
:cond_1de
:goto_1de
check-cast v1, Ljava/lang/String;
goto :goto_1d9
:cond_1e1
:goto_1e1
move-object v4, v1
if-eqz v4, :cond_21c
instance-of v1, v4, Ljava/lang/String;
if-eqz v1, :cond_1e9
goto :goto_21c
:cond_1e9
instance-of v1, v4, Ljava/util/Map;
if-nez v1, :cond_1f4
instance-of v1, v4, Ljava/util/Collection;
if-eqz v1, :cond_1f2
goto :goto_1f4
:cond_1f2
const/4 v1, 0x0
goto :goto_1f5
:cond_1f4
:goto_1f4
const/4 v1, 0x1
:goto_1f5
if-nez v1, :cond_213
invoke-static {v4}, Lcom/tradplus/ads/common/serialization/JSON;->toJSONString(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v20
const/4 v3, 0x0
move-object/from16 v1, p0
move-object/from16 v2, p1
move-object v15, v4
move-object/from16 v4, p2
move-object/from16 v21, v5
move-object/from16 v5, v20
move-object/from16 v22, v6
move-object/from16 v6, v21
const/4 v0, 0x1
move/from16 v7, p5
invoke-virtual/range {v1 .. v7}, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->a(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Lcom/tradplus/ads/common/serialization/serializer/BeanContext;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;I)Ljava/lang/Object;
move-result-object v1
goto :goto_234
:cond_213
move-object v15, v4
move-object/from16 v21, v5
move-object/from16 v22, v6
const/4 v0, 0x1
move-object/from16 v3, v21
goto :goto_235
:cond_21c
:goto_21c
move-object v15, v4
move-object/from16 v21, v5
move-object/from16 v22, v6
const/4 v0, 0x1
const/4 v3, 0x0
move-object v5, v15
check-cast v5, Ljava/lang/String;
move-object/from16 v1, p0
move-object/from16 v2, p1
move-object/from16 v4, p2
move-object/from16 v6, v21
move/from16 v7, p5
invoke-virtual/range {v1 .. v7}, Lcom/tradplus/ads/common/serialization/serializer/SerializeFilterable;->a(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Lcom/tradplus/ads/common/serialization/serializer/BeanContext;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;I)Ljava/lang/Object;
move-result-object v1
:goto_234
move-object v3, v1
:goto_235
if-nez v3, :cond_249
iget v1, v12, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->c:I
sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->WriteMapNullValue:Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;
invoke-static {v1, v11, v2}, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->isEnabled(IILcom/tradplus/ads/common/serialization/serializer/SerializerFeature;)Z
move-result v1
if-nez v1, :cond_249
:goto_241
move-object/from16 v0, p2
move-object/from16 v6, v22
const/4 v7, 0x1
const/4 v15, 0x0
goto/16 :goto_a1
:cond_249
instance-of v1, v15, Ljava/lang/String;
const/16 v2, 0x2c
if-eqz v1, :cond_266
move-object v4, v15
check-cast v4, Ljava/lang/String;
if-nez v18, :cond_257
invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
:cond_257
sget-object v1, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->PrettyFormat:Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;
invoke-virtual {v12, v1}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->isEnabled(Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;)Z
move-result v1
if-eqz v1, :cond_262
invoke-virtual/range {p1 .. p1}, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->println()V
:cond_262
invoke-virtual {v12, v4, v0}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;Z)V
goto :goto_28f
:cond_266
if-nez v18, :cond_26b
invoke-virtual {v12, v2}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
:cond_26b
sget v1, Lcom/tradplus/ads/common/serialization/serializer/MapSerializer;->a:I
invoke-virtual {v12, v1}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->isEnabled(I)Z
move-result v1
if-nez v1, :cond_27b
sget-object v1, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->WriteNonStringKeyAsString:Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;
invoke-static {v11, v1}, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->isEnabled(ILcom/tradplus/ads/common/serialization/serializer/SerializerFeature;)Z
move-result v1
if-eqz v1, :cond_287
:cond_27b
instance-of v1, v15, Ljava/lang/Enum;
if-nez v1, :cond_287
invoke-static {v15}, Lcom/tradplus/ads/common/serialization/JSON;->toJSONString(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v9, v1}, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->write(Ljava/lang/String;)V
goto :goto_28a
:cond_287
invoke-virtual {v9, v15}, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->write(Ljava/lang/Object;)V
:goto_28a
const/16 v1, 0x3a
invoke-virtual {v12, v1}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
:goto_28f
if-nez v3, :cond_29e
invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->writeNull()V
move-object/from16 v0, p2
move-object/from16 v6, v22
:goto_298
const/4 v7, 0x1
const/4 v15, 0x0
const/16 v18, 0x0
goto/16 :goto_a1
:cond_29e
invoke-virtual {v3}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
move-object/from16 v2, v22
if-eq v1, v2, :cond_2ae
invoke-virtual {v9, v1}, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->getObjectWriter(Ljava/lang/Class;)Lcom/tradplus/ads/common/serialization/serializer/ObjectSerializer;
move-result-object v2
move-object/from16 v18, v1
move-object v7, v2
goto :goto_2b2
:cond_2ae
move-object/from16 v18, v2
move-object/from16 v7, v19
:goto_2b2
sget-object v1, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->WriteClassName:Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;
invoke-static {v11, v1}, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->isEnabled(ILcom/tradplus/ads/common/serialization/serializer/SerializerFeature;)Z
move-result v1
if-eqz v1, :cond_2df
instance-of v1, v7, Lcom/tradplus/ads/common/serialization/serializer/JavaBeanSerializer;
if-eqz v1, :cond_2df
instance-of v1, v10, Ljava/lang/reflect/ParameterizedType;
if-eqz v1, :cond_2d1
move-object v1, v10
check-cast v1, Ljava/lang/reflect/ParameterizedType;
invoke-interface {v1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v1
array-length v2, v1
const/4 v4, 0x2
if-ne v2, v4, :cond_2d1
aget-object v1, v1, v0
move-object v5, v1
goto :goto_2d3
:cond_2d1
move-object/from16 v5, v17
:goto_2d3
move-object v1, v7
check-cast v1, Lcom/tradplus/ads/common/serialization/serializer/JavaBeanSerializer;
move-object/from16 v2, p1
move-object v4, v15
move/from16 v6, p5
invoke-virtual/range {v1 .. v6}, Lcom/tradplus/ads/common/serialization/serializer/JavaBeanSerializer;->writeNoneASM(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V
goto :goto_2e9
:cond_2df
const/4 v5, 0x0
move-object v1, v7
move-object/from16 v2, p1
move-object v4, v15
move/from16 v6, p5
invoke-interface/range {v1 .. v6}, Lcom/tradplus/ads/common/serialization/serializer/ObjectSerializer;->write(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V
:try_end_2e9
.catchall {:try_start_52 .. :try_end_2e9} :catchall_30e
:goto_2e9
move-object/from16 v0, p2
move-object/from16 v19, v7
move-object/from16 v6, v18
goto :goto_298
:cond_2f0
iput-object v14, v9, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->c:Lcom/tradplus/ads/common/serialization/serializer/SerialContext;
invoke-virtual/range {p1 .. p1}, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->decrementIdent()V
sget-object v0, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->PrettyFormat:Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;
invoke-virtual {v12, v0}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->isEnabled(Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;)Z
move-result v0
if-eqz v0, :cond_306
invoke-interface {v13}, Ljava/util/Map;->size()I
move-result v0
if-lez v0, :cond_306
invoke-virtual/range {p1 .. p1}, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->println()V
:cond_306
if-nez p6, :cond_30d
const/16 v0, 0x7d
invoke-virtual {v12, v0}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
:cond_30d
return-void
:catchall_30e
move-exception v0
iput-object v14, v9, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->c:Lcom/tradplus/ads/common/serialization/serializer/SerialContext;
goto :goto_313
:goto_312
throw v0
:goto_313
goto :goto_312
.end method