HSFJSONUtils.smali
.class public Lcom/tradplus/ads/common/serialization/support/hsf/HSFJSONUtils;
.super Ljava/lang/Object;
# static fields
.field static final a:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
.field static final b:[C
.field static final c:[C
.field static final d:[C
# direct methods
.method static constructor <clinit>()V
.registers 2
new-instance v0, Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
const/16 v1, 0x400
invoke-direct {v0, v1}, Lcom/tradplus/ads/common/serialization/parser/SymbolTable;-><init>(I)V
sput-object v0, Lcom/tradplus/ads/common/serialization/support/hsf/HSFJSONUtils;->a:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
const-string v0, "\"argsTypes\""
invoke-virtual {v0}, Ljava/lang/String;->toCharArray()[C
move-result-object v0
sput-object v0, Lcom/tradplus/ads/common/serialization/support/hsf/HSFJSONUtils;->b:[C
const-string v0, "\"argsObjs\""
invoke-virtual {v0}, Ljava/lang/String;->toCharArray()[C
move-result-object v0
sput-object v0, Lcom/tradplus/ads/common/serialization/support/hsf/HSFJSONUtils;->c:[C
const-string v0, "\"@type\":"
invoke-virtual {v0}, Ljava/lang/String;->toCharArray()[C
move-result-object v0
sput-object v0, Lcom/tradplus/ads/common/serialization/support/hsf/HSFJSONUtils;->d:[C
return-void
.end method
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static parseInvocationArguments(Ljava/lang/String;Lcom/tradplus/ads/common/serialization/support/hsf/MethodLocator;)[Ljava/lang/Object;
.registers 12
new-instance v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;
invoke-direct {v0, p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getLexer()Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
move-result-object v1
check-cast v1, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;
const/4 v2, 0x0
invoke-virtual {v0, v2, v2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/tradplus/ads/common/serialization/parser/ParseContext;
move-result-object v3
invoke-virtual {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->token()I
move-result v4
const/4 v5, 0x0
const/16 v6, 0x2c
const/4 v7, -0x1
const/16 v8, 0xc
if-ne v4, v8, :cond_af
sget-object v4, Lcom/tradplus/ads/common/serialization/support/hsf/HSFJSONUtils;->b:[C
sget-object v8, Lcom/tradplus/ads/common/serialization/support/hsf/HSFJSONUtils;->a:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
invoke-virtual {v1, v4, v7, v8}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldStringArray([CILcom/tradplus/ads/common/serialization/parser/SymbolTable;)[Ljava/lang/String;
move-result-object v4
if-nez v4, :cond_41
iget v8, v1, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchStat:I
const/4 v9, -0x2
if-ne v8, v9, :cond_41
sget-object v8, Lcom/tradplus/ads/common/serialization/support/hsf/HSFJSONUtils;->d:[C
invoke-virtual {v1, v8}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldString([C)Ljava/lang/String;
move-result-object v8
const-string v9, "com.tradplus.ads.common.serialization.JSONObject"
invoke-virtual {v9, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v8
if-eqz v8, :cond_41
sget-object v4, Lcom/tradplus/ads/common/serialization/support/hsf/HSFJSONUtils;->b:[C
sget-object v8, Lcom/tradplus/ads/common/serialization/support/hsf/HSFJSONUtils;->a:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
invoke-virtual {v1, v4, v7, v8}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldStringArray([CILcom/tradplus/ads/common/serialization/parser/SymbolTable;)[Ljava/lang/String;
move-result-object v4
:cond_41
invoke-interface {p1, v4}, Lcom/tradplus/ads/common/serialization/support/hsf/MethodLocator;->findMethod([Ljava/lang/String;)Ljava/lang/reflect/Method;
move-result-object v4
const-string v7, "argsObjs"
if-nez v4, :cond_7b
invoke-virtual {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->close()V
invoke-static {p0}, Lcom/tradplus/ads/common/serialization/JSON;->parseObject(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/JSONObject;
move-result-object p0
const-class v0, [Ljava/lang/String;
const-string v1, "argsTypes"
invoke-virtual {p0, v1, v0}, Lcom/tradplus/ads/common/serialization/JSONObject;->getObject(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [Ljava/lang/String;
invoke-interface {p1, v0}, Lcom/tradplus/ads/common/serialization/support/hsf/MethodLocator;->findMethod([Ljava/lang/String;)Ljava/lang/reflect/Method;
move-result-object p1
invoke-virtual {p0, v7}, Lcom/tradplus/ads/common/serialization/JSONObject;->getJSONArray(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/JSONArray;
move-result-object p0
if-nez p0, :cond_66
goto/16 :goto_105
:cond_66
invoke-virtual {p1}, Ljava/lang/reflect/Method;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
move-result-object p1
array-length v0, p1
new-array v2, v0, [Ljava/lang/Object;
:goto_6d
array-length v0, p1
if-ge v5, v0, :cond_105
aget-object v0, p1, v5
invoke-virtual {p0, v5, v0}, Lcom/tradplus/ads/common/serialization/JSONArray;->getObject(ILjava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object v0
aput-object v0, v2, v5
add-int/lit8 v5, v5, 0x1
goto :goto_6d
:cond_7b
invoke-virtual {v4}, Ljava/lang/reflect/Method;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
move-result-object p0
invoke-virtual {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->skipWhitespace()V
invoke-virtual {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->getCurrent()C
move-result p1
if-ne p1, v6, :cond_8b
invoke-virtual {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->next()C
:cond_8b
sget-object p1, Lcom/tradplus/ads/common/serialization/support/hsf/HSFJSONUtils;->c:[C
invoke-virtual {v1, p1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->matchField2([C)Z
move-result p1
if-eqz p1, :cond_a9
invoke-virtual {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextToken()V
invoke-virtual {v0, v3, v2, v7}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/tradplus/ads/common/serialization/parser/ParseContext;
move-result-object p1
invoke-virtual {v0, p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseArray([Ljava/lang/reflect/Type;)[Ljava/lang/Object;
move-result-object p0
iput-object p0, p1, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;
const/16 p1, 0xd
invoke-virtual {v0, p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->accept(I)V
invoke-virtual {v0, v2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->handleResovleTask(Ljava/lang/Object;)V
goto :goto_aa
:cond_a9
move-object p0, v2
:goto_aa
invoke-virtual {v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->close()V
move-object v2, p0
goto :goto_105
:cond_af
const/16 p0, 0xe
if-ne v4, p0, :cond_105
sget-object v3, Lcom/tradplus/ads/common/serialization/support/hsf/HSFJSONUtils;->a:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
invoke-virtual {v1, v2, v7, v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->scanFieldStringArray([CILcom/tradplus/ads/common/serialization/parser/SymbolTable;)[Ljava/lang/String;
move-result-object v3
invoke-virtual {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->skipWhitespace()V
invoke-virtual {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->getCurrent()C
move-result v4
const/16 v7, 0x5d
if-ne v4, v7, :cond_eb
invoke-interface {p1, v2}, Lcom/tradplus/ads/common/serialization/support/hsf/MethodLocator;->findMethod([Ljava/lang/String;)Ljava/lang/reflect/Method;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/reflect/Method;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
move-result-object p0
array-length p1, v3
new-array p1, p1, [Ljava/lang/Object;
:goto_cf
array-length v1, v3
if-ge v5, v1, :cond_ea
aget-object v1, p0, v5
aget-object v2, v3, v5
const-class v4, Ljava/lang/String;
if-eq v1, v4, :cond_e5
invoke-virtual {v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getConfig()Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
move-result-object v4
invoke-static {v2, v1, v4}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)Ljava/lang/Object;
move-result-object v1
aput-object v1, p1, v5
goto :goto_e7
:cond_e5
aput-object v2, p1, v5
:goto_e7
add-int/lit8 v5, v5, 0x1
goto :goto_cf
:cond_ea
return-object p1
:cond_eb
if-ne v4, v6, :cond_f3
invoke-virtual {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->next()C
invoke-virtual {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->skipWhitespace()V
:cond_f3
invoke-virtual {v1, p0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->nextToken(I)V
invoke-interface {p1, v3}, Lcom/tradplus/ads/common/serialization/support/hsf/MethodLocator;->findMethod([Ljava/lang/String;)Ljava/lang/reflect/Method;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/reflect/Method;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
move-result-object p0
invoke-virtual {v0, p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseArray([Ljava/lang/reflect/Type;)[Ljava/lang/Object;
move-result-object v2
invoke-virtual {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->close()V
:cond_105
:goto_105
return-object v2
.end method