MiscCodec.smali
.class public Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;
.super Ljava/lang/Object;
# interfaces
.implements Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
.implements Lcom/tradplus/ads/common/serialization/serializer/ObjectSerializer;
# static fields
.field private static a:Z
.field private static b:Ljava/lang/reflect/Method;
.field private static c:Z
.field public static final instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;
# direct methods
.method static constructor <clinit>()V
.registers 2
new-instance v0, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;
invoke-direct {v0}, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;-><init>()V
sput-object v0, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;
const/4 v0, 0x0
sput-boolean v0, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->c:Z
const-string v0, "fastjson.deserializer.fileRelativePathSupport"
invoke-static {v0}, Lcom/tradplus/ads/common/serialization/util/IOUtils;->getStringProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "true"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
sput-boolean v0, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->a:Z
return-void
.end method
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static a(Lorg/w3c/dom/Node;)Ljava/lang/String;
.registers 4
:try_start_0
invoke-static {}, Ljavax/xml/transform/TransformerFactory;->newInstance()Ljavax/xml/transform/TransformerFactory;
move-result-object v0
invoke-virtual {v0}, Ljavax/xml/transform/TransformerFactory;->newTransformer()Ljavax/xml/transform/Transformer;
move-result-object v0
new-instance v1, Ljavax/xml/transform/dom/DOMSource;
invoke-direct {v1, p0}, Ljavax/xml/transform/dom/DOMSource;-><init>(Lorg/w3c/dom/Node;)V
new-instance p0, Ljava/io/StringWriter;
invoke-direct {p0}, Ljava/io/StringWriter;-><init>()V
new-instance v2, Ljavax/xml/transform/stream/StreamResult;
invoke-direct {v2, p0}, Ljavax/xml/transform/stream/StreamResult;-><init>(Ljava/io/Writer;)V
invoke-virtual {v0, v1, v2}, Ljavax/xml/transform/Transformer;->transform(Ljavax/xml/transform/Source;Ljavax/xml/transform/Result;)V
invoke-virtual {p0}, Ljava/io/StringWriter;->toString()Ljava/lang/String;
move-result-object p0
:try_end_1e
.catch Ljavax/xml/transform/TransformerException; {:try_start_0 .. :try_end_1e} :catch_1f
return-object p0
:catch_1f
move-exception p0
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
const-string v1, "xml node to string error"
invoke-direct {v0, v1, p0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v0
.end method
# virtual methods
.method protected a(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;Ljava/util/Iterator;)V
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;",
"Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;",
"Ljava/util/Iterator<",
"*>;)V"
}
.end annotation
const/16 v0, 0x5b
invoke-virtual {p2, v0}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
const/4 v0, 0x0
:goto_6
invoke-interface {p3}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_1d
if-eqz v0, :cond_13
const/16 v1, 0x2c
invoke-virtual {p2, v1}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
:cond_13
invoke-interface {p3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
invoke-virtual {p1, v1}, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->write(Ljava/lang/Object;)V
add-int/lit8 v0, v0, 0x1
goto :goto_6
:cond_1d
const/16 p1, 0x5d
invoke-virtual {p2, p1}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
return-void
.end method
.method public deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
.registers 13
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Object;",
")TT;"
}
.end annotation
const-string p3, "Path deserialize erorr"
iget-object v0, p1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
const-class v1, Ljava/net/InetSocketAddress;
const/16 v2, 0xd
const/16 v3, 0x10
const/4 v4, 0x2
const/16 v5, 0x11
const/4 v6, 0x0
const/4 v7, 0x0
if-ne p2, v1, :cond_79
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result p2
const/16 p3, 0x8
if-ne p2, p3, :cond_1d
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
return-object v6
:cond_1d
const/16 p2, 0xc
invoke-virtual {p1, p2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->accept(I)V
:goto_22
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object p2
invoke-interface {v0, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
const-string p3, "address"
invoke-virtual {p2, p3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p3
if-eqz p3, :cond_3e
invoke-virtual {p1, v5}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->accept(I)V
const-class p2, Ljava/net/InetAddress;
invoke-virtual {p1, p2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseObject(Ljava/lang/Class;)Ljava/lang/Object;
move-result-object p2
check-cast p2, Ljava/net/InetAddress;
move-object v6, p2
goto :goto_66
:cond_3e
const-string p3, "port"
invoke-virtual {p2, p3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_60
invoke-virtual {p1, v5}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->accept(I)V
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result p2
if-ne p2, v4, :cond_58
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->intValue()I
move-result p2
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
move v7, p2
goto :goto_66
:cond_58
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
const-string p2, "port is not int"
invoke-direct {p1, p2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:cond_60
invoke-virtual {p1, v5}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->accept(I)V
invoke-virtual {p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
:goto_66
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result p2
if-ne p2, v3, :cond_70
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
goto :goto_22
:cond_70
invoke-virtual {p1, v2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->accept(I)V
new-instance p1, Ljava/net/InetSocketAddress;
invoke-direct {p1, v6, v7}, Ljava/net/InetSocketAddress;-><init>(Ljava/net/InetAddress;I)V
return-object p1
:cond_79
iget v1, p1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->resolveStatus:I
if-ne v1, v4, :cond_b1
iput v7, p1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->resolveStatus:I
invoke-virtual {p1, v3}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->accept(I)V
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v1
const/4 v3, 0x4
const-string v8, "syntax error"
if-ne v1, v3, :cond_ab
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v1
const-string v3, "val"
invoke-virtual {v3, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_a5
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
invoke-virtual {p1, v5}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->accept(I)V
invoke-virtual {p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v1
invoke-virtual {p1, v2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->accept(I)V
goto :goto_b5
:cond_a5
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {p1, v8}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:cond_ab
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {p1, v8}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:cond_b1
invoke-virtual {p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v1
:goto_b5
if-nez v1, :cond_b9
move-object v1, v6
goto :goto_bf
:cond_b9
instance-of v2, v1, Ljava/lang/String;
if-eqz v2, :cond_21d
check-cast v1, Ljava/lang/String;
:goto_bf
if-eqz v1, :cond_21c
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v2
if-nez v2, :cond_c9
goto/16 :goto_21c
:cond_c9
const-class v2, Ljava/util/UUID;
if-ne p2, v2, :cond_d2
invoke-static {v1}, Ljava/util/UUID;->fromString(Ljava/lang/String;)Ljava/util/UUID;
move-result-object p1
return-object p1
:cond_d2
const-class v2, Ljava/net/URI;
if-ne p2, v2, :cond_db
invoke-static {v1}, Ljava/net/URI;->create(Ljava/lang/String;)Ljava/net/URI;
move-result-object p1
return-object p1
:cond_db
const-class v2, Ljava/net/URL;
if-ne p2, v2, :cond_ee
:try_start_df
new-instance p1, Ljava/net/URL;
invoke-direct {p1, v1}, Ljava/net/URL;-><init>(Ljava/lang/String;)V
:try_end_e4
.catch Ljava/net/MalformedURLException; {:try_start_df .. :try_end_e4} :catch_e5
return-object p1
:catch_e5
move-exception p1
new-instance p2, Lcom/tradplus/ads/common/serialization/JSONException;
const-string p3, "create url error"
invoke-direct {p2, p3, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw p2
:cond_ee
const-class v2, Ljava/util/regex/Pattern;
if-ne p2, v2, :cond_f7
invoke-static {v1}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object p1
return-object p1
:cond_f7
const-class v2, Ljava/util/Locale;
if-ne p2, v2, :cond_100
invoke-static {v1}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->toLocale(Ljava/lang/String;)Ljava/util/Locale;
move-result-object p1
return-object p1
:cond_100
const-class v2, Ljava/text/SimpleDateFormat;
if-ne p2, v2, :cond_115
new-instance p1, Ljava/text/SimpleDateFormat;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getLocale()Ljava/util/Locale;
move-result-object p2
invoke-direct {p1, v1, p2}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getTimeZone()Ljava/util/TimeZone;
move-result-object p2
invoke-virtual {p1, p2}, Ljava/text/SimpleDateFormat;->setTimeZone(Ljava/util/TimeZone;)V
return-object p1
:cond_115
const-class v0, Ljava/net/InetAddress;
if-eq p2, v0, :cond_20e
const-class v0, Ljava/net/Inet4Address;
if-eq p2, v0, :cond_20e
const-class v0, Ljava/net/Inet6Address;
if-ne p2, v0, :cond_123
goto/16 :goto_20e
:cond_123
const-class v0, Ljava/io/File;
if-ne p2, v0, :cond_142
const-string p1, ".."
invoke-virtual {v1, p1}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result p1
if-ltz p1, :cond_13c
sget-boolean p1, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->a:Z
if-eqz p1, :cond_134
goto :goto_13c
:cond_134
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
const-string p2, "file relative path not support."
invoke-direct {p1, p2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:cond_13c
:goto_13c
new-instance p1, Ljava/io/File;
invoke-direct {p1, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
return-object p1
:cond_142
const-class v0, Ljava/util/TimeZone;
if-ne p2, v0, :cond_14b
invoke-static {v1}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;
move-result-object p1
return-object p1
:cond_14b
instance-of v0, p2, Ljava/lang/reflect/ParameterizedType;
if-eqz v0, :cond_155
check-cast p2, Ljava/lang/reflect/ParameterizedType;
invoke-interface {p2}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object p2
:cond_155
const-class v0, Ljava/lang/Class;
if-ne p2, v0, :cond_166
invoke-virtual {p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getConfig()Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
move-result-object p1
invoke-virtual {p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDefaultClassLoader()Ljava/lang/ClassLoader;
move-result-object p1
invoke-static {v1, p1, v7}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->loadClass(Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Class;
move-result-object p1
return-object p1
:cond_166
const-class p1, Ljava/nio/charset/Charset;
if-ne p2, p1, :cond_16f
invoke-static {v1}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
move-result-object p1
return-object p1
:cond_16f
const-class p1, Ljava/util/Currency;
if-ne p2, p1, :cond_178
invoke-static {v1}, Ljava/util/Currency;->getInstance(Ljava/lang/String;)Ljava/util/Currency;
move-result-object p1
return-object p1
:cond_178
const-class p1, Lcom/tradplus/ads/common/serialization/JSONPath;
if-ne p2, p1, :cond_182
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONPath;
invoke-direct {p1, v1}, Lcom/tradplus/ads/common/serialization/JSONPath;-><init>(Ljava/lang/String;)V
return-object p1
:cond_182
instance-of p1, p2, Ljava/lang/Class;
const-string v0, "MiscCodec not support "
if-eqz p1, :cond_1f5
check-cast p2, Ljava/lang/Class;
invoke-virtual {p2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p1
const-string p2, "java.nio.file.Path"
invoke-virtual {p1, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_1e0
const/4 p2, 0x1
:try_start_197
sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->b:Ljava/lang/reflect/Method;
if-nez v2, :cond_1b7
sget-boolean v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->c:Z
if-nez v2, :cond_1b7
const-string v2, "java.nio.file.Paths"
invoke-static {v2}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->loadClass(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v2
const-string v3, "get"
new-array v5, v4, [Ljava/lang/Class;
const-class v8, Ljava/lang/String;
aput-object v8, v5, v7
const-class v8, [Ljava/lang/String;
aput-object v8, v5, p2
invoke-virtual {v2, v3, v5}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v2
sput-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->b:Ljava/lang/reflect/Method;
:cond_1b7
sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->b:Ljava/lang/reflect/Method;
if-eqz v2, :cond_1ca
sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->b:Ljava/lang/reflect/Method;
new-array v3, v4, [Ljava/lang/Object;
aput-object v1, v3, v7
new-array v1, v7, [Ljava/lang/String;
aput-object v1, v3, p2
invoke-virtual {v2, v6, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
:cond_1ca
new-instance v1, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {v1, p3}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v1
:try_end_1d0
.catch Ljava/lang/NoSuchMethodException; {:try_start_197 .. :try_end_1d0} :catch_1de
.catch Ljava/lang/IllegalAccessException; {:try_start_197 .. :try_end_1d0} :catch_1d7
.catch Ljava/lang/reflect/InvocationTargetException; {:try_start_197 .. :try_end_1d0} :catch_1d0
:catch_1d0
move-exception p1
new-instance p2, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {p2, p3, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw p2
:catch_1d7
move-exception p1
new-instance p2, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {p2, p3, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw p2
:catch_1de
sput-boolean p2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->c:Z
:cond_1e0
new-instance p2, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance p3, Ljava/lang/StringBuilder;
invoke-direct {p3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p2, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p2
:cond_1f5
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance p3, Ljava/lang/StringBuilder;
invoke-direct {p3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object p2
invoke-virtual {p3, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:cond_20e
:goto_20e
:try_start_20e
invoke-static {v1}, Ljava/net/InetAddress;->getByName(Ljava/lang/String;)Ljava/net/InetAddress;
move-result-object p1
:try_end_212
.catch Ljava/net/UnknownHostException; {:try_start_20e .. :try_end_212} :catch_213
return-object p1
:catch_213
move-exception p1
new-instance p2, Lcom/tradplus/ads/common/serialization/JSONException;
const-string p3, "deserialize inet adress error"
invoke-direct {p2, p3, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw p2
:cond_21c
:goto_21c
return-object v6
:cond_21d
instance-of p1, v1, Lcom/tradplus/ads/common/serialization/JSONObject;
if-eqz p1, :cond_257
check-cast v1, Lcom/tradplus/ads/common/serialization/JSONObject;
const-class p1, Ljava/util/Currency;
if-ne p2, p1, :cond_241
const-string p1, "currency"
invoke-virtual {v1, p1}, Lcom/tradplus/ads/common/serialization/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
if-eqz p1, :cond_234
invoke-static {p1}, Ljava/util/Currency;->getInstance(Ljava/lang/String;)Ljava/util/Currency;
move-result-object p1
return-object p1
:cond_234
const-string p1, "currencyCode"
invoke-virtual {v1, p1}, Lcom/tradplus/ads/common/serialization/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
if-eqz p1, :cond_241
invoke-static {p1}, Ljava/util/Currency;->getInstance(Ljava/lang/String;)Ljava/util/Currency;
move-result-object p1
return-object p1
:cond_241
const-class p1, Ljava/util/Map$Entry;
if-ne p2, p1, :cond_252
invoke-virtual {v1}, Lcom/tradplus/ads/common/serialization/JSONObject;->entrySet()Ljava/util/Set;
move-result-object p1
invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object p1
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object p1
return-object p1
:cond_252
invoke-virtual {v1, p2}, Lcom/tradplus/ads/common/serialization/JSON;->toJavaObject(Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object p1
return-object p1
:cond_257
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
const-string p2, "expect string"
invoke-direct {p1, p2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_260
:goto_25f
throw p1
:goto_260
goto :goto_25f
.end method
.method public getFastMatchToken()I
.registers 2
const/4 v0, 0x4
return v0
.end method
.method public write(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V
.registers 10
iget-object p3, p1, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->out:Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;
if-nez p2, :cond_8
invoke-virtual {p3}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->writeNull()V
return-void
:cond_8
invoke-virtual {p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p5
const-class v0, Ljava/text/SimpleDateFormat;
const/16 v1, 0x2c
const/16 v2, 0x7d
const/16 v3, 0x7b
if-ne p5, v0, :cond_47
move-object p5, p2
check-cast p5, Ljava/text/SimpleDateFormat;
invoke-virtual {p5}, Ljava/text/SimpleDateFormat;->toPattern()Ljava/lang/String;
move-result-object p5
sget-object v0, Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;->WriteClassName:Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;
invoke-virtual {p3, v0}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->isEnabled(Lcom/tradplus/ads/common/serialization/serializer/SerializerFeature;)Z
move-result v0
if-eqz v0, :cond_124
invoke-virtual {p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
if-eq v0, p4, :cond_124
invoke-virtual {p3, v3}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
sget-object p4, Lcom/tradplus/ads/common/serialization/JSON;->DEFAULT_TYPE_KEY:Ljava/lang/String;
invoke-virtual {p3, p4}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V
invoke-virtual {p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p2
invoke-virtual {p2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p2
invoke-virtual {p1, p2}, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->write(Ljava/lang/String;)V
const-string p1, "val"
invoke-virtual {p3, v1, p1, p5}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->writeFieldValue(CLjava/lang/String;Ljava/lang/String;)V
invoke-virtual {p3, v2}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
return-void
:cond_47
const-class p4, Ljava/lang/Class;
if-ne p5, p4, :cond_53
check-cast p2, Ljava/lang/Class;
invoke-virtual {p2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p5
goto/16 :goto_124
:cond_53
const-class p4, Ljava/net/InetSocketAddress;
if-ne p5, p4, :cond_7d
check-cast p2, Ljava/net/InetSocketAddress;
invoke-virtual {p2}, Ljava/net/InetSocketAddress;->getAddress()Ljava/net/InetAddress;
move-result-object p4
invoke-virtual {p3, v3}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
if-eqz p4, :cond_6d
const-string p5, "address"
invoke-virtual {p3, p5}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V
invoke-virtual {p1, p4}, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->write(Ljava/lang/Object;)V
invoke-virtual {p3, v1}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
:cond_6d
const-string p1, "port"
invoke-virtual {p3, p1}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V
invoke-virtual {p2}, Ljava/net/InetSocketAddress;->getPort()I
move-result p1
invoke-virtual {p3, p1}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->writeInt(I)V
invoke-virtual {p3, v2}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
return-void
:cond_7d
instance-of p4, p2, Ljava/io/File;
if-eqz p4, :cond_89
check-cast p2, Ljava/io/File;
invoke-virtual {p2}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object p5
goto/16 :goto_124
:cond_89
instance-of p4, p2, Ljava/net/InetAddress;
if-eqz p4, :cond_95
check-cast p2, Ljava/net/InetAddress;
invoke-virtual {p2}, Ljava/net/InetAddress;->getHostAddress()Ljava/lang/String;
move-result-object p5
goto/16 :goto_124
:cond_95
instance-of p4, p2, Ljava/util/TimeZone;
if-eqz p4, :cond_a1
check-cast p2, Ljava/util/TimeZone;
invoke-virtual {p2}, Ljava/util/TimeZone;->getID()Ljava/lang/String;
move-result-object p5
goto/16 :goto_124
:cond_a1
instance-of p4, p2, Ljava/util/Currency;
if-eqz p4, :cond_ad
check-cast p2, Ljava/util/Currency;
invoke-virtual {p2}, Ljava/util/Currency;->getCurrencyCode()Ljava/lang/String;
move-result-object p5
goto/16 :goto_124
:cond_ad
instance-of p4, p2, Lcom/tradplus/ads/common/serialization/JSONStreamAware;
if-eqz p4, :cond_b7
check-cast p2, Lcom/tradplus/ads/common/serialization/JSONStreamAware;
invoke-interface {p2, p3}, Lcom/tradplus/ads/common/serialization/JSONStreamAware;->writeJSONString(Ljava/lang/Appendable;)V
return-void
:cond_b7
instance-of p4, p2, Ljava/util/Iterator;
if-eqz p4, :cond_c1
check-cast p2, Ljava/util/Iterator;
invoke-virtual {p0, p1, p3, p2}, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->a(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;Ljava/util/Iterator;)V
return-void
:cond_c1
instance-of p4, p2, Ljava/lang/Iterable;
if-eqz p4, :cond_cf
check-cast p2, Ljava/lang/Iterable;
invoke-interface {p2}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
move-result-object p2
invoke-virtual {p0, p1, p3, p2}, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->a(Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;Ljava/util/Iterator;)V
return-void
:cond_cf
instance-of p4, p2, Ljava/util/Map$Entry;
if-eqz p4, :cond_106
check-cast p2, Ljava/util/Map$Entry;
invoke-interface {p2}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object p4
invoke-interface {p2}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object p2
instance-of p5, p4, Ljava/lang/String;
if-eqz p5, :cond_f4
check-cast p4, Ljava/lang/String;
instance-of p5, p2, Ljava/lang/String;
if-eqz p5, :cond_ed
check-cast p2, Ljava/lang/String;
invoke-virtual {p3, v3, p4, p2}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->writeFieldValueStringWithDoubleQuoteCheck(CLjava/lang/String;Ljava/lang/String;)V
goto :goto_102
:cond_ed
invoke-virtual {p3, v3}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
invoke-virtual {p3, p4}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V
goto :goto_ff
:cond_f4
invoke-virtual {p3, v3}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
invoke-virtual {p1, p4}, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->write(Ljava/lang/Object;)V
const/16 p4, 0x3a
invoke-virtual {p3, p4}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
:goto_ff
invoke-virtual {p1, p2}, Lcom/tradplus/ads/common/serialization/serializer/JSONSerializer;->write(Ljava/lang/Object;)V
:goto_102
invoke-virtual {p3, v2}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->write(I)V
return-void
:cond_106
invoke-virtual {p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p1
const-string p4, "net.sf.json.JSONNull"
invoke-virtual {p1, p4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_11a
invoke-virtual {p3}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->writeNull()V
return-void
:cond_11a
instance-of p1, p2, Lorg/w3c/dom/Node;
if-eqz p1, :cond_128
check-cast p2, Lorg/w3c/dom/Node;
invoke-static {p2}, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->a(Lorg/w3c/dom/Node;)Ljava/lang/String;
move-result-object p5
:cond_124
:goto_124
invoke-virtual {p3, p5}, Lcom/tradplus/ads/common/serialization/serializer/SerializeWriter;->writeString(Ljava/lang/String;)V
return-void
:cond_128
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string p3, "not support class : "
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2, p5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
.end method