DefaultJSONParser.smali
.class public Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;
.super Ljava/lang/Object;
# interfaces
.implements Ljava/io/Closeable;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;
}
.end annotation
# static fields
.field public static final NONE:I = 0x0
.field public static final NeedToResolve:I = 0x1
.field public static final TypeNameRedirect:I = 0x2
.field private static final d:Ljava/util/Set;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set<",
"Ljava/lang/Class<",
"*>;>;"
}
.end annotation
.end field
# instance fields
.field protected a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
.field protected b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
.field protected c:Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldTypeResolver;
.field private e:Ljava/lang/String;
.field private f:Ljava/text/DateFormat;
.field private g:[Lcom/tradplus/ads/common/serialization/parser/ParseContext;
.field private h:I
.field private i:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;",
">;"
}
.end annotation
.end field
.field public final input:Ljava/lang/Object;
.field private j:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/tradplus/ads/common/serialization/parser/deserializer/ExtraTypeProvider;",
">;"
}
.end annotation
.end field
.field private k:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/tradplus/ads/common/serialization/parser/deserializer/ExtraProcessor;",
">;"
}
.end annotation
.end field
.field private l:I
.field public final lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
.field private m:[Ljava/lang/String;
.field public resolveStatus:I
.field public final symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
# direct methods
.method static constructor <clinit>()V
.registers 5
new-instance v0, Ljava/util/HashSet;
invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
sput-object v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->d:Ljava/util/Set;
const/16 v0, 0x11
new-array v0, v0, [Ljava/lang/Class;
sget-object v1, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
const/4 v2, 0x0
aput-object v1, v0, v2
sget-object v1, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
const/4 v3, 0x1
aput-object v1, v0, v3
sget-object v1, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
const/4 v3, 0x2
aput-object v1, v0, v3
sget-object v1, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
const/4 v3, 0x3
aput-object v1, v0, v3
sget-object v1, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
const/4 v3, 0x4
aput-object v1, v0, v3
sget-object v1, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
const/4 v3, 0x5
aput-object v1, v0, v3
sget-object v1, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
const/4 v3, 0x6
aput-object v1, v0, v3
const-class v1, Ljava/lang/Boolean;
const/4 v3, 0x7
aput-object v1, v0, v3
const-class v1, Ljava/lang/Byte;
const/16 v3, 0x8
aput-object v1, v0, v3
const-class v1, Ljava/lang/Short;
const/16 v3, 0x9
aput-object v1, v0, v3
const-class v1, Ljava/lang/Integer;
const/16 v3, 0xa
aput-object v1, v0, v3
const-class v1, Ljava/lang/Long;
const/16 v3, 0xb
aput-object v1, v0, v3
const-class v1, Ljava/lang/Float;
const/16 v3, 0xc
aput-object v1, v0, v3
const-class v1, Ljava/lang/Double;
const/16 v3, 0xd
aput-object v1, v0, v3
const-class v1, Ljava/math/BigInteger;
const/16 v3, 0xe
aput-object v1, v0, v3
const-class v1, Ljava/math/BigDecimal;
const/16 v3, 0xf
aput-object v1, v0, v3
const-class v1, Ljava/lang/String;
const/16 v3, 0x10
aput-object v1, v0, v3
array-length v1, v0
:goto_6a
if-ge v2, v1, :cond_76
aget-object v3, v0, v2
sget-object v4, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->d:Ljava/util/Set;
invoke-interface {v4, v3}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
add-int/lit8 v2, v2, 0x1
goto :goto_6a
:cond_76
return-void
.end method
.method public constructor <init>(Lcom/tradplus/ads/common/serialization/parser/JSONLexer;)V
.registers 3
invoke-static {}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getGlobalInstance()Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
move-result-object v0
invoke-direct {p0, p1, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;-><init>(Lcom/tradplus/ads/common/serialization/parser/JSONLexer;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)V
return-void
.end method
.method public constructor <init>(Lcom/tradplus/ads/common/serialization/parser/JSONLexer;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)V
.registers 4
const/4 v0, 0x0
invoke-direct {p0, v0, p1, p2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;-><init>(Ljava/lang/Object;Lcom/tradplus/ads/common/serialization/parser/JSONLexer;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)V
return-void
.end method
.method public constructor <init>(Ljava/lang/Object;Lcom/tradplus/ads/common/serialization/parser/JSONLexer;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)V
.registers 6
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
sget-object v0, Lcom/tradplus/ads/common/serialization/JSON;->DEFFAULT_DATE_FORMAT:Ljava/lang/String;
iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->e:Ljava/lang/String;
const/4 v0, 0x0
iput v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->h:I
iput v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->resolveStatus:I
const/4 v1, 0x0
iput-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->j:Ljava/util/List;
iput-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->k:Ljava/util/List;
iput-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->c:Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldTypeResolver;
iput v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->l:I
iput-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->m:[Ljava/lang/String;
iput-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
iput-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->input:Ljava/lang/Object;
iput-object p3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
iget-object p1, p3, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
iput-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
invoke-interface {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C
move-result p1
const/16 p3, 0x7b
if-ne p1, p3, :cond_33
invoke-interface {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->next()C
check-cast p2, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;
const/16 p1, 0xc
:goto_30
iput p1, p2, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->a:I
goto :goto_42
:cond_33
const/16 p3, 0x5b
if-ne p1, p3, :cond_3f
invoke-interface {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->next()C
check-cast p2, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;
const/16 p1, 0xe
goto :goto_30
:cond_3f
invoke-interface {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
:goto_42
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.registers 4
invoke-static {}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getGlobalInstance()Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
move-result-object v0
sget v1, Lcom/tradplus/ads/common/serialization/JSON;->DEFAULT_PARSER_FEATURE:I
invoke-direct {p0, p1, v0, v1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;-><init>(Ljava/lang/String;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;I)V
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)V
.registers 5
new-instance v0, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;
sget v1, Lcom/tradplus/ads/common/serialization/JSON;->DEFAULT_PARSER_FEATURE:I
invoke-direct {v0, p1, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;-><init>(Ljava/lang/String;I)V
invoke-direct {p0, p1, v0, p2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;-><init>(Ljava/lang/Object;Lcom/tradplus/ads/common/serialization/parser/JSONLexer;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)V
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;I)V
.registers 5
new-instance v0, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;
invoke-direct {v0, p1, p3}, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;-><init>(Ljava/lang/String;I)V
invoke-direct {p0, p1, v0, p2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;-><init>(Ljava/lang/Object;Lcom/tradplus/ads/common/serialization/parser/JSONLexer;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)V
return-void
.end method
.method public constructor <init>([CILcom/tradplus/ads/common/serialization/parser/ParserConfig;I)V
.registers 6
new-instance v0, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;
invoke-direct {v0, p1, p2, p4}, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;-><init>([CII)V
invoke-direct {p0, p1, v0, p3}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;-><init>(Ljava/lang/Object;Lcom/tradplus/ads/common/serialization/parser/JSONLexer;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)V
return-void
.end method
.method private a(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
.registers 7
iget v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->h:I
add-int/lit8 v1, v0, 0x1
iput v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->h:I
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->g:[Lcom/tradplus/ads/common/serialization/parser/ParseContext;
if-nez v1, :cond_11
const/16 v1, 0x8
new-array v1, v1, [Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iput-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->g:[Lcom/tradplus/ads/common/serialization/parser/ParseContext;
goto :goto_22
:cond_11
array-length v2, v1
if-lt v0, v2, :cond_22
array-length v2, v1
mul-int/lit8 v2, v2, 0x3
div-int/lit8 v2, v2, 0x2
new-array v2, v2, [Lcom/tradplus/ads/common/serialization/parser/ParseContext;
array-length v3, v1
const/4 v4, 0x0
invoke-static {v1, v4, v2, v4, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
iput-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->g:[Lcom/tradplus/ads/common/serialization/parser/ParseContext;
:cond_22
:goto_22
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->g:[Lcom/tradplus/ads/common/serialization/parser/ParseContext;
aput-object p1, v1, v0
return-void
.end method
# virtual methods
.method public final accept(I)V
.registers 6
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v1
if-ne v1, p1, :cond_c
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
return-void
:cond_c
new-instance v1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "syntax error, expect "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {p1}, Lcom/tradplus/ads/common/serialization/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object p1
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, ", actual "
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result p1
invoke-static {p1}, Lcom/tradplus/ads/common/serialization/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object p1
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v1, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public final accept(II)V
.registers 5
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v1
if-ne v1, p1, :cond_c
invoke-interface {v0, p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
goto :goto_f
:cond_c
invoke-virtual {p0, p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->throwException(I)V
:goto_f
return-void
.end method
.method public acceptType(Ljava/lang/String;)V
.registers 6
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextTokenWithColon()V
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v1
const-string v2, "type not match error"
const/4 v3, 0x4
if-ne v1, v3, :cond_2d
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v1
invoke-virtual {p1, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_27
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result p1
const/16 v1, 0x10
if-ne p1, v1, :cond_26
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
:cond_26
return-void
:cond_27
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {p1, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:cond_2d
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {p1, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public addResolveTask(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;)V
.registers 4
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->i:Ljava/util/List;
if-nez v0, :cond_c
new-instance v0, Ljava/util/ArrayList;
const/4 v1, 0x2
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->i:Ljava/util/List;
:cond_c
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->i:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
return-void
.end method
.method public checkListResolve(Ljava/util/Collection;)V
.registers 6
iget v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->resolveStatus:I
const/4 v1, 0x1
if-ne v0, v1, :cond_33
instance-of v0, p1, Ljava/util/List;
const/4 v2, 0x0
if-eqz v0, :cond_21
invoke-interface {p1}, Ljava/util/Collection;->size()I
move-result v0
sub-int/2addr v0, v1
check-cast p1, Ljava/util/List;
invoke-virtual {p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getLastResolveTask()Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;
move-result-object v1
new-instance v3, Lcom/tradplus/ads/common/serialization/parser/deserializer/ResolveFieldDeserializer;
invoke-direct {v3, p0, p1, v0}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ResolveFieldDeserializer;-><init>(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/util/List;I)V
iput-object v3, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iput-object p1, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
goto :goto_30
:cond_21
invoke-virtual {p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getLastResolveTask()Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;
move-result-object v0
new-instance v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/ResolveFieldDeserializer;
invoke-direct {v1, p1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ResolveFieldDeserializer;-><init>(Ljava/util/Collection;)V
iput-object v1, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iput-object p1, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
:goto_30
invoke-virtual {p0, v2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setResolveStatus(I)V
:cond_33
return-void
.end method
.method public checkMapResolve(Ljava/util/Map;Ljava/lang/Object;)V
.registers 5
iget v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->resolveStatus:I
const/4 v1, 0x1
if-ne v0, v1, :cond_18
new-instance v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/ResolveFieldDeserializer;
invoke-direct {v0, p1, p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ResolveFieldDeserializer;-><init>(Ljava/util/Map;Ljava/lang/Object;)V
invoke-virtual {p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getLastResolveTask()Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;
move-result-object p1
iput-object v0, p1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;
iget-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iput-object p2, p1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
const/4 p1, 0x0
invoke-virtual {p0, p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setResolveStatus(I)V
:cond_18
return-void
.end method
.method public close()V
.registers 5
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
:try_start_2
sget-object v1, Lcom/tradplus/ads/common/serialization/parser/Feature;->AutoCloseSource:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v0, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v1
if-eqz v1, :cond_32
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v1
const/16 v2, 0x14
if-ne v1, v2, :cond_13
goto :goto_32
:cond_13
new-instance v1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "not close json text, token : "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v3
invoke-static {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v1
:try_end_32
.catchall {:try_start_2 .. :try_end_32} :catchall_36
:cond_32
:goto_32
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->close()V
return-void
:catchall_36
move-exception v1
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->close()V
throw v1
.end method
.method public config(Lcom/tradplus/ads/common/serialization/parser/Feature;Z)V
.registers 4
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0, p1, p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->config(Lcom/tradplus/ads/common/serialization/parser/Feature;Z)V
return-void
.end method
.method public getConfig()Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
.registers 2
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
return-object v0
.end method
.method public getContext()Lcom/tradplus/ads/common/serialization/parser/ParseContext;
.registers 2
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
return-object v0
.end method
.method public getDateFomartPattern()Ljava/lang/String;
.registers 2
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->e:Ljava/lang/String;
return-object v0
.end method
.method public getDateFormat()Ljava/text/DateFormat;
.registers 4
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->f:Ljava/text/DateFormat;
if-nez v0, :cond_1e
new-instance v0, Ljava/text/SimpleDateFormat;
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->e:Ljava/lang/String;
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getLocale()Ljava/util/Locale;
move-result-object v2
invoke-direct {v0, v1, v2}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->f:Ljava/text/DateFormat;
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->f:Ljava/text/DateFormat;
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getTimeZone()Ljava/util/TimeZone;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/text/DateFormat;->setTimeZone(Ljava/util/TimeZone;)V
:cond_1e
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->f:Ljava/text/DateFormat;
return-object v0
.end method
.method public getExtraProcessors()Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/tradplus/ads/common/serialization/parser/deserializer/ExtraProcessor;",
">;"
}
.end annotation
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->k:Ljava/util/List;
if-nez v0, :cond_c
new-instance v0, Ljava/util/ArrayList;
const/4 v1, 0x2
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->k:Ljava/util/List;
:cond_c
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->k:Ljava/util/List;
return-object v0
.end method
.method public getExtraTypeProviders()Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/tradplus/ads/common/serialization/parser/deserializer/ExtraTypeProvider;",
">;"
}
.end annotation
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->j:Ljava/util/List;
if-nez v0, :cond_c
new-instance v0, Ljava/util/ArrayList;
const/4 v1, 0x2
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->j:Ljava/util/List;
:cond_c
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->j:Ljava/util/List;
return-object v0
.end method
.method public getFieldTypeResolver()Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldTypeResolver;
.registers 2
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->c:Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldTypeResolver;
return-object v0
.end method
.method public getInput()Ljava/lang/String;
.registers 3
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->input:Ljava/lang/Object;
instance-of v1, v0, [C
if-eqz v1, :cond_e
new-instance v1, Ljava/lang/String;
check-cast v0, [C
invoke-direct {v1, v0}, Ljava/lang/String;-><init>([C)V
return-object v1
:cond_e
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public getLastResolveTask()Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;
.registers 3
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->i:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
add-int/lit8 v1, v1, -0x1
invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;
return-object v0
.end method
.method public getLexer()Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
.registers 2
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
return-object v0
.end method
.method public getObject(Ljava/lang/String;)Ljava/lang/Object;
.registers 4
const/4 v0, 0x0
:goto_1
iget v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->h:I
if-ge v0, v1, :cond_1d
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->g:[Lcom/tradplus/ads/common/serialization/parser/ParseContext;
aget-object v1, v1, v0
invoke-virtual {v1}, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {p1, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_1a
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->g:[Lcom/tradplus/ads/common/serialization/parser/ParseContext;
aget-object p1, p1, v0
iget-object p1, p1, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;
return-object p1
:cond_1a
add-int/lit8 v0, v0, 0x1
goto :goto_1
:cond_1d
const/4 p1, 0x0
return-object p1
.end method
.method public getResolveStatus()I
.registers 2
iget v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->resolveStatus:I
return v0
.end method
.method public getResolveTaskList()Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;",
">;"
}
.end annotation
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->i:Ljava/util/List;
if-nez v0, :cond_c
new-instance v0, Ljava/util/ArrayList;
const/4 v1, 0x2
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->i:Ljava/util/List;
:cond_c
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->i:Ljava/util/List;
return-object v0
.end method
.method public getSymbolTable()Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
.registers 2
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
return-object v0
.end method
.method public handleResovleTask(Ljava/lang/Object;)V
.registers 11
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->i:Ljava/util/List;
if-nez v0, :cond_5
return-void
:cond_5
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
const/4 v1, 0x0
const/4 v2, 0x0
:goto_b
if-ge v2, v0, :cond_77
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->i:Ljava/util/List;
invoke-interface {v3, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;
iget-object v4, v3, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;->referenceValue:Ljava/lang/String;
const/4 v5, 0x0
iget-object v6, v3, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
if-eqz v6, :cond_1e
iget-object v5, v6, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;
:cond_1e
const-string v6, "$"
invoke-virtual {v4, v6}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v6
if-eqz v6, :cond_3d
invoke-virtual {p0, v4}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->getObject(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v6
if-nez v6, :cond_41
:try_start_2c
invoke-static {v4}, Lcom/tradplus/ads/common/serialization/JSONPath;->compile(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/JSONPath;
move-result-object v7
invoke-virtual {v7}, Lcom/tradplus/ads/common/serialization/JSONPath;->isRef()Z
move-result v8
if-eqz v8, :cond_41
invoke-virtual {v7, p1}, Lcom/tradplus/ads/common/serialization/JSONPath;->eval(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v6
:try_end_3a
.catch Lcom/tradplus/ads/common/serialization/JSONPathException; {:try_start_2c .. :try_end_3a} :catch_3b
goto :goto_41
:catch_3b
nop
goto :goto_41
:cond_3d
iget-object v6, v3, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;->context:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iget-object v6, v6, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;
:cond_41
:goto_41
iget-object v3, v3, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;
if-eqz v3, :cond_74
if-eqz v6, :cond_71
invoke-virtual {v6}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v7
const-class v8, Lcom/tradplus/ads/common/serialization/JSONObject;
if-ne v7, v8, :cond_71
iget-object v7, v3, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/tradplus/ads/common/serialization/util/FieldInfo;
if-eqz v7, :cond_71
const-class v8, Ljava/util/Map;
iget-object v7, v7, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;
invoke-virtual {v8, v7}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v7
if-nez v7, :cond_71
iget-object v7, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->g:[Lcom/tradplus/ads/common/serialization/parser/ParseContext;
aget-object v7, v7, v1
iget-object v7, v7, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;
invoke-static {v4}, Lcom/tradplus/ads/common/serialization/JSONPath;->compile(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/JSONPath;
move-result-object v4
invoke-virtual {v4}, Lcom/tradplus/ads/common/serialization/JSONPath;->isRef()Z
move-result v8
if-eqz v8, :cond_71
invoke-virtual {v4, v7}, Lcom/tradplus/ads/common/serialization/JSONPath;->eval(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v6
:cond_71
invoke-virtual {v3, v5, v6}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V
:cond_74
add-int/lit8 v2, v2, 0x1
goto :goto_b
:cond_77
return-void
.end method
.method public isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
.registers 3
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0, p1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result p1
return p1
.end method
.method public parse()Ljava/lang/Object;
.registers 2
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public parse(Lcom/tradplus/ads/common/serialization/parser/deserializer/PropertyProcessable;Ljava/lang/Object;)Ljava/lang/Object;
.registers 13
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v0
const/4 v1, 0x0
const/16 v2, 0xc
if-eq v0, v2, :cond_8c
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "syntax error, expect {, actual "
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->tokenName()Ljava/lang/String;
move-result-object v0
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
instance-of v0, p2, Ljava/lang/String;
if-eqz v0, :cond_46
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, ", fieldName "
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
:cond_46
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, ", "
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONArray;
invoke-direct {v0}, Lcom/tradplus/ads/common/serialization/JSONArray;-><init>()V
invoke-virtual {p0, v0, p2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
invoke-virtual {v0}, Lcom/tradplus/ads/common/serialization/JSONArray;->size()I
move-result p2
const/4 v2, 0x1
if-ne p2, v2, :cond_86
invoke-virtual {v0, v1}, Lcom/tradplus/ads/common/serialization/JSONArray;->get(I)Ljava/lang/Object;
move-result-object p2
instance-of v0, p2, Lcom/tradplus/ads/common/serialization/JSONObject;
if-eqz v0, :cond_86
check-cast p2, Lcom/tradplus/ads/common/serialization/JSONObject;
return-object p2
:cond_86
new-instance p2, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {p2, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p2
:cond_8c
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
:goto_8e
:try_start_8e
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->skipWhitespace()V
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C
move-result v2
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
sget-object v4, Lcom/tradplus/ads/common/serialization/parser/Feature;->AllowArbitraryCommas:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v3, v4}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v3
if-eqz v3, :cond_b8
:goto_a3
const/16 v3, 0x2c
if-ne v2, v3, :cond_b8
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->next()C
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->skipWhitespace()V
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C
move-result v2
:try_end_b7
.catchall {:try_start_8e .. :try_end_b7} :catchall_260
goto :goto_a3
:cond_b8
const-string v3, "expect \':\' at "
const/16 v4, 0x3a
const/16 v5, 0x22
const/16 v6, 0x10
if-ne v2, v5, :cond_f4
:try_start_c2
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
iget-object v7, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
invoke-interface {v2, v7, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanSymbol(Lcom/tradplus/ads/common/serialization/parser/SymbolTable;C)Ljava/lang/String;
move-result-object v2
iget-object v7, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->skipWhitespace()V
iget-object v7, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C
move-result v7
if-ne v7, v4, :cond_d9
goto/16 :goto_171
:cond_d9
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->pos()I
move-result v1
invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(I)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
:cond_f4
const/16 v7, 0x7d
if-ne v2, v7, :cond_10b
iget-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->next()C
iget-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->resetStringPosition()V
iget-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p2, v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
:try_end_107
.catchall {:try_start_c2 .. :try_end_107} :catchall_260
invoke-virtual {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
return-object p1
:cond_10b
const-string v7, "syntax error"
const/16 v8, 0x27
if-ne v2, v8, :cond_152
:try_start_111
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
sget-object v9, Lcom/tradplus/ads/common/serialization/parser/Feature;->AllowSingleQuotes:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v2, v9}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v2
if-eqz v2, :cond_14c
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
iget-object v7, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
invoke-interface {v2, v7, v8}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanSymbol(Lcom/tradplus/ads/common/serialization/parser/SymbolTable;C)Ljava/lang/String;
move-result-object v2
iget-object v7, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->skipWhitespace()V
iget-object v7, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C
move-result v7
if-ne v7, v4, :cond_131
goto :goto_171
:cond_131
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->pos()I
move-result v1
invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(I)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
:cond_14c
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {p1, v7}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:cond_152
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
sget-object v8, Lcom/tradplus/ads/common/serialization/parser/Feature;->AllowUnQuotedFieldNames:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v2, v8}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v2
if-eqz v2, :cond_25a
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
iget-object v7, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
invoke-interface {v2, v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanSymbolUnQuoted(Lcom/tradplus/ads/common/serialization/parser/SymbolTable;)Ljava/lang/String;
move-result-object v2
iget-object v7, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->skipWhitespace()V
iget-object v7, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C
move-result v7
if-ne v7, v4, :cond_237
:goto_171
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->next()C
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->skipWhitespace()V
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->resetStringPosition()V
sget-object v3, Lcom/tradplus/ads/common/serialization/JSON;->DEFAULT_TYPE_KEY:Ljava/lang/String;
const/16 v4, 0xd
const/4 v7, 0x0
if-ne v2, v3, :cond_1ea
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
sget-object v8, Lcom/tradplus/ads/common/serialization/parser/Feature;->DisableSpecialKeyDetect:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v3, v8}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v3
if-nez v3, :cond_1ea
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
invoke-interface {v2, v3, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanSymbol(Lcom/tradplus/ads/common/serialization/parser/SymbolTable;C)Ljava/lang/String;
move-result-object v2
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
iget-object v5, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getFeatures()I
move-result v5
invoke-virtual {v3, v2, v7, v5}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->checkAutoType(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;
move-result-object v2
const-class v3, Ljava/util/Map;
invoke-virtual {v3, v2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v3
if-eqz v3, :cond_1c8
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2, v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v2
if-ne v2, v4, :cond_22f
iget-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p2, v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
:try_end_1c4
.catchall {:try_start_111 .. :try_end_1c4} :catchall_260
invoke-virtual {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
return-object p1
:cond_1c8
:try_start_1c8
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
invoke-virtual {p1, v2}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
move-result-object p1
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v1, v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
const/4 v1, 0x2
invoke-virtual {p0, v1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setResolveStatus(I)V
if-eqz v0, :cond_1e0
instance-of v1, p2, Ljava/lang/Integer;
if-nez v1, :cond_1e0
invoke-virtual {p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->popContext()V
:cond_1e0
invoke-interface {p1, p0, v2, p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/util/Map;
:try_end_1e6
.catchall {:try_start_1c8 .. :try_end_1e6} :catchall_260
invoke-virtual {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
return-object p1
:cond_1ea
:try_start_1ea
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
if-eqz v1, :cond_1f4
invoke-virtual {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
:cond_1f4
invoke-interface {p1, v2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/PropertyProcessable;->getType(Ljava/lang/String;)Ljava/lang/reflect/Type;
move-result-object v3
iget-object v5, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v5
const/16 v6, 0x8
if-ne v5, v6, :cond_208
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
goto :goto_20c
:cond_208
invoke-virtual {p0, v3, v2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseObject(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v7
:goto_20c
invoke-interface {p1, v2, v7}, Lcom/tradplus/ads/common/serialization/parser/deserializer/PropertyProcessable;->apply(Ljava/lang/String;Ljava/lang/Object;)V
invoke-virtual {p0, v0, v7, v2}, 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;
invoke-virtual {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v2
const/16 v3, 0x14
if-eq v2, v3, :cond_233
const/16 v3, 0xf
if-ne v2, v3, :cond_224
goto :goto_233
:cond_224
if-ne v2, v4, :cond_22f
iget-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
:try_end_22b
.catchall {:try_start_1ea .. :try_end_22b} :catchall_260
invoke-virtual {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
return-object p1
:cond_22f
add-int/lit8 v1, v1, 0x1
goto/16 :goto_8e
:cond_233
:goto_233
invoke-virtual {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
return-object p1
:cond_237
:try_start_237
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->pos()I
move-result v1
invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", actual "
invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2, v7}, Ljava/lang/StringBuilder;->append(C)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
:cond_25a
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {p1, v7}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:try_end_260
.catchall {:try_start_237 .. :try_end_260} :catchall_260
:catchall_260
move-exception p1
invoke-virtual {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
goto :goto_266
:goto_265
throw p1
:goto_266
goto :goto_265
.end method
.method public parse(Ljava/lang/Object;)Ljava/lang/Object;
.registers 9
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v1
const/4 v2, 0x2
if-eq v1, v2, :cond_152
const/4 v3, 0x3
if-eq v1, v3, :cond_144
const/4 v3, 0x4
if-eq v1, v3, :cond_112
const/16 v3, 0xc
if-eq v1, v3, :cond_102
const/16 v3, 0xe
if-eq v1, v3, :cond_ec
const-string v3, "syntax error, "
const/16 v4, 0x12
const/4 v5, 0x0
if-eq v1, v4, :cond_c3
const/16 v6, 0x1a
if-eq v1, v6, :cond_bb
packed-switch v1, :pswitch_data_15a
packed-switch v1, :pswitch_data_166
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:pswitch_41
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
return-object v5
:pswitch_45
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
new-instance v0, Ljava/util/TreeSet;
invoke-direct {v0}, Ljava/util/TreeSet;-><init>()V
:goto_4d
invoke-virtual {p0, v0, p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
return-object v0
:pswitch_51
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
new-instance v0, Ljava/util/HashSet;
invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
goto :goto_4d
:pswitch_5a
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isBlankInput()Z
move-result p1
if-eqz p1, :cond_61
return-object v5
:cond_61
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "unterminated json string, "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:pswitch_7c
invoke-interface {v0, v4}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result p1
if-ne p1, v4, :cond_a3
const/16 p1, 0xa
invoke-interface {v0, p1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
invoke-virtual {p0, p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->accept(I)V
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->integerValue()Ljava/lang/Number;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/Number;->longValue()J
move-result-wide v0
invoke-virtual {p0, v2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->accept(I)V
const/16 p1, 0xb
invoke-virtual {p0, p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->accept(I)V
new-instance p1, Ljava/util/Date;
invoke-direct {p1, v0, v1}, Ljava/util/Date;-><init>(J)V
return-object p1
:cond_a3
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
const-string v0, "syntax error"
invoke-direct {p1, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:pswitch_ab
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
return-object v5
:pswitch_af
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
sget-object p1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
return-object p1
:pswitch_b5
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
sget-object p1, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
return-object p1
:cond_bb
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->bytesValue()[B
move-result-object p1
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
return-object p1
:cond_c3
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object p1
const-string v1, "NaN"
invoke-virtual {v1, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_d3
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
return-object v5
:cond_d3
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:cond_ec
new-instance v1, Lcom/tradplus/ads/common/serialization/JSONArray;
invoke-direct {v1}, Lcom/tradplus/ads/common/serialization/JSONArray;-><init>()V
invoke-virtual {p0, v1, p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
sget-object p1, Lcom/tradplus/ads/common/serialization/parser/Feature;->UseObjectArray:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v0, p1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result p1
if-eqz p1, :cond_101
invoke-virtual {v1}, Lcom/tradplus/ads/common/serialization/JSONArray;->toArray()[Ljava/lang/Object;
move-result-object p1
return-object p1
:cond_101
return-object v1
:cond_102
new-instance v1, Lcom/tradplus/ads/common/serialization/JSONObject;
sget-object v2, Lcom/tradplus/ads/common/serialization/parser/Feature;->OrderedField:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v0, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v0
invoke-direct {v1, v0}, Lcom/tradplus/ads/common/serialization/JSONObject;-><init>(Z)V
invoke-virtual {p0, v1, p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
:cond_112
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object p1
const/16 v1, 0x10
invoke-interface {v0, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
sget-object v1, Lcom/tradplus/ads/common/serialization/parser/Feature;->AllowISO8601DateFormat:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v0, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v0
if-eqz v0, :cond_143
new-instance v0, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;
invoke-direct {v0, p1}, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;-><init>(Ljava/lang/String;)V
:try_start_128
invoke-virtual {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;->scanISO8601DateIfMatch()Z
move-result v1
if-eqz v1, :cond_13a
invoke-virtual {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->getCalendar()Ljava/util/Calendar;
move-result-object p1
invoke-virtual {p1}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
move-result-object p1
:try_end_136
.catchall {:try_start_128 .. :try_end_136} :catchall_13e
invoke-virtual {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->close()V
return-object p1
:cond_13a
invoke-virtual {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->close()V
goto :goto_143
:catchall_13e
move-exception p1
invoke-virtual {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->close()V
throw p1
:cond_143
:goto_143
return-object p1
:cond_144
sget-object p1, Lcom/tradplus/ads/common/serialization/parser/Feature;->UseBigDecimal:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v0, p1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result p1
invoke-interface {v0, p1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
move-result-object p1
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
return-object p1
:cond_152
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->integerValue()Ljava/lang/Number;
move-result-object p1
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
return-object p1
:pswitch_data_15a
.packed-switch 0x6
:pswitch_b5
:pswitch_af
:pswitch_ab
:pswitch_7c
.end packed-switch
:pswitch_data_166
.packed-switch 0x14
:pswitch_5a
:pswitch_51
:pswitch_45
:pswitch_41
.end packed-switch
.end method
.method public parseArray(Ljava/lang/Class;)Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TT;>;)",
"Ljava/util/List<",
"TT;>;"
}
.end annotation
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
invoke-virtual {p0, p1, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
return-object v0
.end method
.method public parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;",
"Ljava/util/Collection;",
")V"
}
.end annotation
invoke-virtual {p0, p1, p2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;)V
return-void
.end method
.method public parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;)V
.registers 4
const/4 v0, 0x0
invoke-virtual {p0, p1, p2, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;Ljava/lang/Object;)V
return-void
.end method
.method public parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;Ljava/lang/Object;)V
.registers 11
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v0
const/16 v1, 0x15
if-eq v0, v1, :cond_e
const/16 v1, 0x16
if-ne v0, v1, :cond_19
:cond_e
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v0
:cond_19
const/16 v1, 0xe
if-ne v0, v1, :cond_e5
sget-object v0, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
const/4 v1, 0x4
if-ne v0, p1, :cond_2b
sget-object v0, Lcom/tradplus/ads/common/serialization/serializer/IntegerCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/IntegerCodec;
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
const/4 v3, 0x2
:goto_27
invoke-interface {v2, v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
goto :goto_44
:cond_2b
const-class v0, Ljava/lang/String;
if-ne v0, p1, :cond_37
sget-object v0, Lcom/tradplus/ads/common/serialization/serializer/StringCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/StringCodec;
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
goto :goto_44
:cond_37
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
invoke-virtual {v0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
move-result-object v0
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;->getFastMatchToken()I
move-result v3
goto :goto_27
:goto_44
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
invoke-virtual {p0, p2, p3}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/tradplus/ads/common/serialization/parser/ParseContext;
const/4 p3, 0x0
:goto_4a
:try_start_4a
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
sget-object v4, Lcom/tradplus/ads/common/serialization/parser/Feature;->AllowArbitraryCommas:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v3, v4}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v3
const/16 v4, 0x10
if-eqz v3, :cond_64
:goto_56
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v3
if-ne v3, v4, :cond_64
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
goto :goto_56
:cond_64
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v3
:try_end_6a
.catchall {:try_start_4a .. :try_end_6a} :catchall_e0
const/16 v5, 0xf
if-ne v3, v5, :cond_77
invoke-virtual {p0, v2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p1, v4}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
return-void
:cond_77
:try_start_77
sget-object v3, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
const/4 v5, 0x0
if-ne v3, p1, :cond_86
sget-object v3, Lcom/tradplus/ads/common/serialization/serializer/IntegerCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/IntegerCodec;
invoke-virtual {v3, p0, v5, v5}, Lcom/tradplus/ads/common/serialization/serializer/IntegerCodec;->deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
invoke-interface {p2, v3}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
goto :goto_cb
:cond_86
const-class v3, Ljava/lang/String;
if-ne v3, p1, :cond_ad
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v3
if-ne v3, v1, :cond_9e
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v5
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3, v4}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
goto :goto_a9
:cond_9e
invoke-virtual {p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v3
if-nez v3, :cond_a5
goto :goto_a9
:cond_a5
invoke-virtual {v3}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v5
:goto_a9
invoke-interface {p2, v5}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
goto :goto_cb
:cond_ad
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v3
const/16 v6, 0x8
if-ne v3, v6, :cond_bd
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
goto :goto_c5
:cond_bd
invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-interface {v0, p0, p1, v3}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v5
:goto_c5
invoke-interface {p2, v5}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
invoke-virtual {p0, p2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->checkListResolve(Ljava/util/Collection;)V
:goto_cb
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v3
if-ne v3, v4, :cond_dc
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;->getFastMatchToken()I
move-result v4
invoke-interface {v3, v4}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
:try_end_dc
.catchall {:try_start_77 .. :try_end_dc} :catchall_e0
:cond_dc
add-int/lit8 p3, p3, 0x1
goto/16 :goto_4a
:catchall_e0
move-exception p1
invoke-virtual {p0, v2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
throw p1
:cond_e5
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, "expect \'[\', but "
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object p3
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p3, ", "
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object p3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object p3
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)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
goto :goto_10f
:goto_10e
throw p1
:goto_10f
goto :goto_10e
.end method
.method public final parseArray(Ljava/util/Collection;)V
.registers 3
const/4 v0, 0x0
invoke-virtual {p0, p1, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
return-void
.end method
.method public final parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
.registers 12
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v1
const/16 v2, 0x15
if-eq v1, v2, :cond_12
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v1
const/16 v2, 0x16
if-ne v1, v2, :cond_15
:cond_12
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
:cond_15
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v1
const/16 v2, 0xe
if-ne v1, v2, :cond_120
const/4 v1, 0x4
invoke-interface {v0, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
if-eqz v3, :cond_34
iget v3, v3, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->level:I
const/16 v4, 0x200
if-gt v3, v4, :cond_2c
goto :goto_34
:cond_2c
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
const-string p2, "array level > 512"
invoke-direct {p1, p2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:cond_34
:goto_34
iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
invoke-virtual {p0, p1, p2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/tradplus/ads/common/serialization/parser/ParseContext;
const/4 p2, 0x0
const/4 v4, 0x0
:goto_3b
:try_start_3b
sget-object v5, Lcom/tradplus/ads/common/serialization/parser/Feature;->AllowArbitraryCommas:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v0, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v5
const/16 v6, 0x10
if-eqz v5, :cond_4f
:goto_45
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v5
if-ne v5, v6, :cond_4f
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
goto :goto_45
:cond_4f
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v5
const/4 v7, 0x2
const/4 v8, 0x0
if-eq v5, v7, :cond_103
const/4 v7, 0x3
if-eq v5, v7, :cond_ef
if-eq v5, v1, :cond_c8
const/4 v7, 0x6
if-eq v5, v7, :cond_c5
const/4 v7, 0x7
if-eq v5, v7, :cond_bf
const/16 v7, 0x8
if-eq v5, v7, :cond_9f
const/16 v7, 0xc
if-eq v5, v7, :cond_ab
const/16 v7, 0x14
if-eq v5, v7, :cond_a3
const/16 v7, 0x17
if-eq v5, v7, :cond_9f
if-eq v5, v2, :cond_85
const/16 v7, 0xf
if-eq v5, v7, :cond_7e
invoke-virtual {p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v8
goto/16 :goto_108
:cond_7e
invoke-interface {v0, v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
:try_end_81
.catchall {:try_start_3b .. :try_end_81} :catchall_11b
invoke-virtual {p0, v3}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
return-void
:cond_85
:try_start_85
new-instance v8, Lcom/tradplus/ads/common/serialization/JSONArray;
invoke-direct {v8}, Lcom/tradplus/ads/common/serialization/JSONArray;-><init>()V
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
invoke-virtual {p0, v8, v5}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
sget-object v5, Lcom/tradplus/ads/common/serialization/parser/Feature;->UseObjectArray:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v0, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v5
if-eqz v5, :cond_108
invoke-interface {v8}, Ljava/util/Collection;->toArray()[Ljava/lang/Object;
move-result-object v8
goto/16 :goto_108
:cond_9f
invoke-interface {v0, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
goto :goto_108
:cond_a3
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
const-string p2, "unclosed jsonArray"
invoke-direct {p1, p2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:cond_ab
new-instance v5, Lcom/tradplus/ads/common/serialization/JSONObject;
sget-object v7, Lcom/tradplus/ads/common/serialization/parser/Feature;->OrderedField:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v0, v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v7
invoke-direct {v5, v7}, Lcom/tradplus/ads/common/serialization/JSONObject;-><init>(Z)V
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v7
invoke-virtual {p0, v5, v7}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v8
goto :goto_108
:cond_bf
sget-object v8, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
:goto_c1
invoke-interface {v0, v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
goto :goto_108
:cond_c5
sget-object v8, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
goto :goto_c1
:cond_c8
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v8
invoke-interface {v0, v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
sget-object v5, Lcom/tradplus/ads/common/serialization/parser/Feature;->AllowISO8601DateFormat:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v0, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v5
if-eqz v5, :cond_108
new-instance v5, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;
invoke-direct {v5, v8}, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;-><init>(Ljava/lang/String;)V
invoke-virtual {v5}, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;->scanISO8601DateIfMatch()Z
move-result v7
if-eqz v7, :cond_eb
invoke-virtual {v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->getCalendar()Ljava/util/Calendar;
move-result-object v7
invoke-virtual {v7}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
move-result-object v7
move-object v8, v7
:cond_eb
invoke-virtual {v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->close()V
goto :goto_108
:cond_ef
sget-object v5, Lcom/tradplus/ads/common/serialization/parser/Feature;->UseBigDecimal:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v0, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v5
if-eqz v5, :cond_fd
const/4 v5, 0x1
invoke-interface {v0, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
move-result-object v5
goto :goto_101
:cond_fd
invoke-interface {v0, p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
move-result-object v5
:goto_101
move-object v8, v5
goto :goto_c1
:cond_103
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->integerValue()Ljava/lang/Number;
move-result-object v8
goto :goto_c1
:cond_108
:goto_108
invoke-interface {p1, v8}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
invoke-virtual {p0, p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->checkListResolve(Ljava/util/Collection;)V
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v5
if-ne v5, v6, :cond_117
invoke-interface {v0, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
:try_end_117
.catchall {:try_start_85 .. :try_end_117} :catchall_11b
:cond_117
add-int/lit8 v4, v4, 0x1
goto/16 :goto_3b
:catchall_11b
move-exception p1
invoke-virtual {p0, v3}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
throw p1
:cond_120
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "syntax error, expect [, actual "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v2
invoke-static {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, ", pos "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->pos()I
move-result v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v0, ", fieldName "
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, 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
goto :goto_154
:goto_153
throw p1
:goto_154
goto :goto_153
.end method
.method public parseArray([Ljava/lang/reflect/Type;)[Ljava/lang/Object;
.registers 18
move-object/from16 v0, p0
move-object/from16 v1, p1
iget-object v2, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v2
const/16 v3, 0x8
const/4 v4, 0x0
const/16 v5, 0x10
if-ne v2, v3, :cond_17
iget-object v1, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v1, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
return-object v4
:cond_17
iget-object v2, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v2
const/16 v6, 0xe
if-ne v2, v6, :cond_1a9
array-length v2, v1
new-array v2, v2, [Ljava/lang/Object;
array-length v7, v1
const-string v8, "syntax error"
const/4 v9, 0x0
const/16 v10, 0xf
if-nez v7, :cond_47
iget-object v1, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v1, v10}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
iget-object v1, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v1
if-ne v1, v10, :cond_41
iget-object v1, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v1, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
new-array v1, v9, [Ljava/lang/Object;
return-object v1
:cond_41
new-instance v1, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {v1, v8}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v1
:cond_47
iget-object v7, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
const/4 v11, 0x2
invoke-interface {v7, v11}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
const/4 v7, 0x0
:goto_4e
array-length v12, v1
if-ge v7, v12, :cond_195
iget-object v12, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v12
const-string v13, "syntax error :"
if-ne v12, v3, :cond_63
iget-object v12, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v12, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
move-object v3, v4
goto/16 :goto_14b
:cond_63
aget-object v12, v1, v7
sget-object v14, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
if-eq v12, v14, :cond_129
const-class v14, Ljava/lang/Integer;
if-ne v12, v14, :cond_6f
goto/16 :goto_129
:cond_6f
const-class v14, Ljava/lang/String;
const/4 v15, 0x4
if-ne v12, v14, :cond_95
iget-object v14, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v14}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v14
if-ne v14, v15, :cond_88
iget-object v12, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v12}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v12
iget-object v14, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v14, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
goto :goto_92
:cond_88
invoke-virtual/range {p0 .. p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v14
iget-object v15, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
invoke-static {v14, v12, v15}, 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 v12
:goto_92
move-object v3, v12
goto/16 :goto_14b
:cond_95
array-length v14, v1
add-int/lit8 v14, v14, -0x1
if-ne v7, v14, :cond_ba
instance-of v14, v12, Ljava/lang/Class;
if-eqz v14, :cond_ba
move-object v14, v12
check-cast v14, Ljava/lang/Class;
const-class v3, [B
if-eq v14, v3, :cond_a9
const-class v3, [C
if-ne v14, v3, :cond_b1
:cond_a9
iget-object v3, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v3
if-eq v3, v15, :cond_ba
:cond_b1
invoke-virtual {v14}, Ljava/lang/Class;->isArray()Z
move-result v3
invoke-virtual {v14}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object v14
goto :goto_bc
:cond_ba
move-object v14, v4
const/4 v3, 0x0
:goto_bc
if-eqz v3, :cond_11a
iget-object v3, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v3
if-eq v3, v6, :cond_11a
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
iget-object v15, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
invoke-virtual {v15, v14}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
move-result-object v14
invoke-interface {v14}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;->getFastMatchToken()I
move-result v15
iget-object v6, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v6
if-eq v6, v10, :cond_145
:goto_dd
invoke-interface {v14, v0, v12, v4}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v6
invoke-interface {v3, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
iget-object v6, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v6
if-ne v6, v5, :cond_f2
iget-object v6, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v6, v15}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
goto :goto_dd
:cond_f2
iget-object v6, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v6
if-ne v6, v10, :cond_fb
goto :goto_145
:cond_fb
new-instance v1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v3
invoke-static {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v1
:cond_11a
iget-object v3, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
invoke-virtual {v3, v12}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
move-result-object v3
invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v6
invoke-interface {v3, v0, v12, v6}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
goto :goto_14b
:cond_129
:goto_129
iget-object v3, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v3
if-ne v3, v11, :cond_141
iget-object v3, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->intValue()I
move-result v3
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
iget-object v6, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v6, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
goto :goto_14b
:cond_141
invoke-virtual/range {p0 .. p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v3
:cond_145
:goto_145
iget-object v6, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
invoke-static {v3, v12, v6}, 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 v3
:goto_14b
aput-object v3, v2, v7
iget-object v3, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v3
if-ne v3, v10, :cond_156
goto :goto_195
:cond_156
iget-object v3, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v3
if-ne v3, v5, :cond_176
array-length v3, v1
add-int/lit8 v3, v3, -0x1
if-ne v7, v3, :cond_169
iget-object v3, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3, v10}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
goto :goto_16e
:cond_169
iget-object v3, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3, v11}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
:goto_16e
add-int/lit8 v7, v7, 0x1
const/16 v3, 0x8
const/16 v6, 0xe
goto/16 :goto_4e
:cond_176
new-instance v1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v3
invoke-static {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v1
:cond_195
:goto_195
iget-object v1, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v1
if-ne v1, v10, :cond_1a3
iget-object v1, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v1, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
return-object v2
:cond_1a3
new-instance v1, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {v1, v8}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v1
:cond_1a9
new-instance v1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "syntax error : "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->tokenName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_1c7
:goto_1c6
throw v1
:goto_1c7
goto :goto_1c6
.end method
.method public parseArrayWithType(Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 8
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v0
const/16 v1, 0x8
if-ne v0, v1, :cond_11
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
const/4 p1, 0x0
return-object p1
:cond_11
move-object v0, p1
check-cast v0, Ljava/lang/reflect/ParameterizedType;
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v0
array-length v1, v0
const/4 v2, 0x1
if-ne v1, v2, :cond_cc
const/4 v1, 0x0
aget-object v0, v0, v1
instance-of v3, v0, Ljava/lang/Class;
if-eqz v3, :cond_2e
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
check-cast v0, Ljava/lang/Class;
invoke-virtual {p0, v0, p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
return-object p1
:cond_2e
instance-of v3, v0, Ljava/lang/reflect/WildcardType;
if-eqz v3, :cond_70
check-cast v0, Ljava/lang/reflect/WildcardType;
invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object v2
aget-object v1, v2, v1
const-class v2, Ljava/lang/Object;
invoke-virtual {v2, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_65
invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type;
move-result-object v0
array-length v0, v0
if-nez v0, :cond_4e
invoke-virtual {p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object p1
return-object p1
:cond_4e
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "not support type : "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_65
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
check-cast v1, Ljava/lang/Class;
invoke-virtual {p0, v1, p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
return-object p1
:cond_70
instance-of v3, v0, Ljava/lang/reflect/TypeVariable;
if-eqz v3, :cond_a6
move-object v3, v0
check-cast v3, Ljava/lang/reflect/TypeVariable;
invoke-interface {v3}, Ljava/lang/reflect/TypeVariable;->getBounds()[Ljava/lang/reflect/Type;
move-result-object v4
array-length v5, v4
if-ne v5, v2, :cond_8f
aget-object v1, v4, v1
instance-of v2, v1, Ljava/lang/Class;
if-eqz v2, :cond_a6
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
check-cast v1, Ljava/lang/Class;
invoke-virtual {p0, v1, p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
return-object p1
:cond_8f
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "not support : "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:cond_a6
instance-of v1, v0, Ljava/lang/reflect/ParameterizedType;
if-eqz v1, :cond_b5
check-cast v0, Ljava/lang/reflect/ParameterizedType;
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
invoke-virtual {p0, v0, p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;)V
return-object p1
:cond_b5
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "TODO : "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_cc
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "not support type "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public parseExtra(Ljava/lang/Object;Ljava/lang/String;)V
.registers 6
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextTokenWithColon()V
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->j:Ljava/util/List;
const/4 v1, 0x0
if-eqz v0, :cond_1f
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_e
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_1f
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/ExtraTypeProvider;
invoke-interface {v1, p1, p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ExtraTypeProvider;->getExtraType(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Type;
move-result-object v1
goto :goto_e
:cond_1f
if-nez v1, :cond_26
invoke-virtual {p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v0
goto :goto_2a
:cond_26
invoke-virtual {p0, v1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseObject(Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object v0
:goto_2a
instance-of v1, p1, Lcom/tradplus/ads/common/serialization/parser/deserializer/ExtraProcessable;
if-eqz v1, :cond_34
check-cast p1, Lcom/tradplus/ads/common/serialization/parser/deserializer/ExtraProcessable;
invoke-interface {p1, p2, v0}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ExtraProcessable;->processExtra(Ljava/lang/String;Ljava/lang/Object;)V
return-void
:cond_34
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->k:Ljava/util/List;
if-eqz v1, :cond_4c
invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_3c
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_4c
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/ExtraProcessor;
invoke-interface {v2, p1, p2, v0}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ExtraProcessor;->processExtra(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
goto :goto_3c
:cond_4c
iget p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->resolveStatus:I
const/4 p2, 0x1
if-ne p1, p2, :cond_54
const/4 p1, 0x0
iput p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->resolveStatus:I
:cond_54
return-void
.end method
.method public parseKey()Ljava/lang/Object;
.registers 4
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v0
const/16 v1, 0x12
if-ne v0, v1, :cond_18
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v0
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
const/16 v2, 0x10
invoke-interface {v1, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
return-object v0
:cond_18
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public parseObject()Lcom/tradplus/ads/common/serialization/JSONObject;
.registers 4
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONObject;
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
sget-object v2, Lcom/tradplus/ads/common/serialization/parser/Feature;->OrderedField:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v1, v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v1
invoke-direct {v0, v1}, Lcom/tradplus/ads/common/serialization/JSONObject;-><init>(Z)V
invoke-virtual {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;)Ljava/lang/Object;
move-result-object v0
instance-of v1, v0, Lcom/tradplus/ads/common/serialization/JSONObject;
if-eqz v1, :cond_18
check-cast v0, Lcom/tradplus/ads/common/serialization/JSONObject;
return-object v0
:cond_18
if-nez v0, :cond_1c
const/4 v0, 0x0
return-object v0
:cond_1c
new-instance v1, Lcom/tradplus/ads/common/serialization/JSONObject;
check-cast v0, Ljava/util/Map;
invoke-direct {v1, v0}, Lcom/tradplus/ads/common/serialization/JSONObject;-><init>(Ljava/util/Map;)V
return-object v1
.end method
.method public parseObject(Ljava/lang/Class;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
const/4 v0, 0x0
invoke-virtual {p0, p1, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseObject(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public parseObject(Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/reflect/Type;",
")TT;"
}
.end annotation
const/4 v0, 0x0
invoke-virtual {p0, p1, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseObject(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public parseObject(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Object;",
")TT;"
}
.end annotation
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v0
const/16 v1, 0x8
if-ne v0, v1, :cond_11
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
const/4 p1, 0x0
return-object p1
:cond_11
const/4 v1, 0x4
if-ne v0, v1, :cond_38
const-class v0, [B
if-ne p1, v0, :cond_24
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->bytesValue()[B
move-result-object p1
iget-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
return-object p1
:cond_24
const-class v0, [C
if-ne p1, v0, :cond_38
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object p1
iget-object p2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
invoke-virtual {p1}, Ljava/lang/String;->toCharArray()[C
move-result-object p1
return-object p1
:cond_38
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
invoke-virtual {v0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
move-result-object v0
:try_start_3e
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
const-class v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;
if-ne v1, v2, :cond_80
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v1
const/16 v2, 0xc
if-eq v1, v2, :cond_78
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v1
const/16 v2, 0xe
if-ne v1, v2, :cond_5b
goto :goto_78
:cond_5b
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 v0, "syntax error,except start with { or [,but actually start with "
invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->tokenName()Ljava/lang/String;
move-result-object v0
invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)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
:cond_78
:goto_78
check-cast v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;
const/4 v1, 0x0
invoke-virtual {v0, p0, p1, p2, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;I)Ljava/lang/Object;
move-result-object p1
return-object p1
:cond_80
invoke-interface {v0, p0, p1, p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
:try_end_84
.catch Lcom/tradplus/ads/common/serialization/JSONException; {:try_start_3e .. :try_end_84} :catch_90
.catch Ljava/lang/Throwable; {:try_start_3e .. :try_end_84} :catch_85
return-object p1
:catch_85
move-exception p1
new-instance p2, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-virtual {p1}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-direct {p2, v0, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw p2
:catch_90
move-exception p1
throw p1
.end method
.method public parseObject(Ljava/util/Map;)Ljava/lang/Object;
.registers 3
const/4 v0, 0x0
invoke-virtual {p0, p1, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public final parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
.registers 20
move-object/from16 v1, p0
move-object/from16 v0, p1
move-object/from16 v2, p2
iget-object v3, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v4
const/4 v5, 0x0
const/16 v6, 0x8
if-ne v4, v6, :cond_15
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
return-object v5
:cond_15
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v4
const/16 v6, 0xd
if-ne v4, v6, :cond_21
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
return-object v0
:cond_21
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v4
const/4 v7, 0x4
if-ne v4, v7, :cond_36
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v4
if-nez v4, :cond_36
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
return-object v0
:cond_36
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v4
const/16 v8, 0xc
const/16 v9, 0x10
if-eq v4, v8, :cond_6e
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v4
if-ne v4, v9, :cond_47
goto :goto_6e
:cond_47
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "syntax error, expect {, actual "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->tokenName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v4, ", "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_6e
:goto_6e
iget-object v4, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
:try_start_70
instance-of v8, v0, Lcom/tradplus/ads/common/serialization/JSONObject;
if-eqz v8, :cond_7c
move-object v10, v0
check-cast v10, Lcom/tradplus/ads/common/serialization/JSONObject;
invoke-virtual {v10}, Lcom/tradplus/ads/common/serialization/JSONObject;->getInnerMap()Ljava/util/Map;
move-result-object v10
:try_end_7b
.catchall {:try_start_70 .. :try_end_7b} :catchall_699
goto :goto_7d
:cond_7c
move-object v10, v0
:goto_7d
move-object v12, v4
const/4 v4, 0x0
:goto_7f
:try_start_7f
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->skipWhitespace()V
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C
move-result v13
sget-object v14, Lcom/tradplus/ads/common/serialization/parser/Feature;->AllowArbitraryCommas:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v3, v14}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v14
const/16 v15, 0x2c
if-eqz v14, :cond_9d
:goto_90
if-ne v13, v15, :cond_9d
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->next()C
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->skipWhitespace()V
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C
move-result v13
:try_end_9c
.catchall {:try_start_7f .. :try_end_9c} :catchall_697
goto :goto_90
:cond_9d
const-string v14, ", name "
const-string v11, "expect \':\' at "
const/16 v5, 0x3a
const/16 v7, 0x22
const-string v6, "syntax error"
const/4 v9, 0x1
if-ne v13, v7, :cond_db
:try_start_aa
iget-object v13, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
invoke-interface {v3, v13, v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanSymbol(Lcom/tradplus/ads/common/serialization/parser/SymbolTable;C)Ljava/lang/String;
move-result-object v13
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->skipWhitespace()V
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C
move-result v7
if-ne v7, v5, :cond_bc
:goto_b9
const/4 v5, 0x0
goto/16 :goto_218
:cond_bc
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->pos()I
move-result v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_db
const/16 v7, 0x7d
if-ne v13, v7, :cond_108
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->next()C
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->resetStringPosition()V
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
if-nez v4, :cond_104
iget-object v3, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
if-eqz v3, :cond_fd
iget-object v3, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iget-object v3, v3, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->fieldName:Ljava/lang/Object;
if-ne v2, v3, :cond_fd
iget-object v3, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iget-object v3, v3, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;
if-ne v0, v3, :cond_fd
iget-object v12, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
goto :goto_104
:cond_fd
invoke-virtual/range {p0 .. p2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/tradplus/ads/common/serialization/parser/ParseContext;
move-result-object v2
:try_end_101
.catchall {:try_start_aa .. :try_end_101} :catchall_697
if-nez v12, :cond_104
move-object v12, v2
:cond_104
:goto_104
invoke-virtual {v1, v12}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
return-object v0
:cond_108
const/16 v7, 0x27
if-ne v13, v7, :cond_145
:try_start_10c
sget-object v7, Lcom/tradplus/ads/common/serialization/parser/Feature;->AllowSingleQuotes:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v3, v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v7
if-eqz v7, :cond_13f
iget-object v7, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
const/16 v13, 0x27
invoke-interface {v3, v7, v13}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanSymbol(Lcom/tradplus/ads/common/serialization/parser/SymbolTable;C)Ljava/lang/String;
move-result-object v13
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->skipWhitespace()V
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C
move-result v7
if-ne v7, v5, :cond_126
goto :goto_b9
:cond_126
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->pos()I
move-result v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_13f
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {v0, v6}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_145
const/16 v7, 0x1a
if-eq v13, v7, :cond_691
if-eq v13, v15, :cond_68b
const/16 v7, 0x30
if-lt v13, v7, :cond_153
const/16 v7, 0x39
if-le v13, v7, :cond_157
:cond_153
const/16 v7, 0x2d
if-ne v13, v7, :cond_1bd
:cond_157
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->resetStringPosition()V
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanNumber()V
:try_end_15d
.catchall {:try_start_10c .. :try_end_15d} :catchall_697
:try_start_15d
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v7
const/4 v11, 0x2
if-ne v7, v11, :cond_169
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->integerValue()Ljava/lang/Number;
move-result-object v7
goto :goto_16d
:cond_169
invoke-interface {v3, v9}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
move-result-object v7
:goto_16d
sget-object v11, Lcom/tradplus/ads/common/serialization/parser/Feature;->NonStringKeyAsString:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v3, v11}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v11
if-nez v11, :cond_17a
if-eqz v8, :cond_178
goto :goto_17a
:cond_178
:goto_178
move-object v13, v7
goto :goto_17f
:cond_17a
:goto_17a
invoke-virtual {v7}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v7
:try_end_17e
.catch Ljava/lang/NumberFormatException; {:try_start_15d .. :try_end_17e} :catch_1a2
.catchall {:try_start_15d .. :try_end_17e} :catchall_697
goto :goto_178
:goto_17f
:try_start_17f
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C
move-result v7
if-ne v7, v5, :cond_187
goto/16 :goto_b9
:cond_187
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "parse number key error"
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:catch_1a2
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "parse number key error"
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_1bd
const/16 v7, 0x7b
if-eq v13, v7, :cond_206
const/16 v7, 0x5b
if-ne v13, v7, :cond_1c6
goto :goto_206
:cond_1c6
sget-object v7, Lcom/tradplus/ads/common/serialization/parser/Feature;->AllowUnQuotedFieldNames:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v3, v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v7
if-eqz v7, :cond_200
iget-object v7, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
invoke-interface {v3, v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanSymbolUnQuoted(Lcom/tradplus/ads/common/serialization/parser/SymbolTable;)Ljava/lang/String;
move-result-object v13
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->skipWhitespace()V
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C
move-result v7
if-ne v7, v5, :cond_1df
goto/16 :goto_b9
:cond_1df
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->pos()I
move-result v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, ", actual "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_200
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {v0, v6}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_206
:goto_206
iget v5, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->l:I
add-int/lit8 v7, v5, 0x1
iput v7, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->l:I
const/16 v7, 0x200
if-gt v5, v7, :cond_683
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
invoke-virtual/range {p0 .. p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v13
const/4 v5, 0x1
:goto_218
if-nez v5, :cond_220
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->next()C
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->skipWhitespace()V
:cond_220
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C
move-result v5
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->resetStringPosition()V
sget-object v7, Lcom/tradplus/ads/common/serialization/JSON;->DEFAULT_TYPE_KEY:Ljava/lang/String;
if-ne v13, v7, :cond_34c
sget-object v7, Lcom/tradplus/ads/common/serialization/parser/Feature;->DisableSpecialKeyDetect:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v3, v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v7
if-nez v7, :cond_34c
iget-object v5, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
const/16 v6, 0x22
invoke-interface {v3, v5, v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanSymbol(Lcom/tradplus/ads/common/serialization/parser/SymbolTable;C)Ljava/lang/String;
move-result-object v5
sget-object v6, Lcom/tradplus/ads/common/serialization/parser/Feature;->IgnoreAutoType:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v3, v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v6
if-eqz v6, :cond_247
const/4 v7, 0x4
const/4 v11, 0x0
goto/16 :goto_381
:cond_247
if-eqz v0, :cond_25d
invoke-virtual/range {p1 .. p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v6
invoke-virtual {v6}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v6
invoke-virtual {v6, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_25d
invoke-virtual/range {p1 .. p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v6
const/4 v11, 0x0
goto :goto_285
:cond_25d
const/4 v6, 0x0
:goto_25e
invoke-virtual {v5}, Ljava/lang/String;->length()I
move-result v7
if-ge v6, v7, :cond_275
invoke-virtual {v5, v6}, Ljava/lang/String;->charAt(I)C
move-result v7
const/16 v11, 0x30
if-lt v7, v11, :cond_274
const/16 v11, 0x39
if-le v7, v11, :cond_271
goto :goto_274
:cond_271
add-int/lit8 v6, v6, 0x1
goto :goto_25e
:cond_274
:goto_274
const/4 v9, 0x0
:cond_275
if-nez v9, :cond_283
iget-object v6, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getFeatures()I
move-result v7
const/4 v11, 0x0
invoke-virtual {v6, v5, v11, v7}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->checkAutoType(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;
move-result-object v6
goto :goto_285
:cond_283
const/4 v11, 0x0
move-object v6, v11
:goto_285
if-nez v6, :cond_28f
sget-object v6, Lcom/tradplus/ads/common/serialization/JSON;->DEFAULT_TYPE_KEY:Ljava/lang/String;
invoke-interface {v10, v6, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const/4 v7, 0x4
goto/16 :goto_381
:cond_28f
const/16 v4, 0x10
invoke-interface {v3, v4}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v7
const/16 v8, 0xd
if-ne v7, v8, :cond_2ed
invoke-interface {v3, v4}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
:try_end_29f
.catchall {:try_start_17f .. :try_end_29f} :catchall_697
:try_start_29f
iget-object v2, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
invoke-virtual {v2, v6}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
move-result-object v2
instance-of v2, v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;
if-eqz v2, :cond_2b0
iget-object v2, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
invoke-static {v0, v6, v2}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/Class;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)Ljava/lang/Object;
move-result-object v0
goto :goto_2b1
:cond_2b0
move-object v0, v11
:goto_2b1
if-nez v0, :cond_2e0
const-class v0, Ljava/lang/Cloneable;
if-ne v6, v0, :cond_2bd
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
goto :goto_2e0
:cond_2bd
const-string v0, "java.util.Collections$EmptyMap"
invoke-virtual {v0, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_2ca
invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map;
move-result-object v0
goto :goto_2e0
:cond_2ca
const-string v0, "java.util.Collections$UnmodifiableMap"
invoke-virtual {v0, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_2dc
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
invoke-static {v0}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map;
move-result-object v0
goto :goto_2e0
:cond_2dc
invoke-virtual {v6}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
move-result-object v0
:try_end_2e0
.catch Ljava/lang/Exception; {:try_start_29f .. :try_end_2e0} :catch_2e4
.catchall {:try_start_29f .. :try_end_2e0} :catchall_697
:cond_2e0
:goto_2e0
invoke-virtual {v1, v12}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
return-object v0
:catch_2e4
move-exception v0
:try_start_2e5
new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;
const-string v3, "create instance error"
invoke-direct {v2, v3, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v2
:cond_2ed
const/4 v3, 0x2
invoke-virtual {v1, v3}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setResolveStatus(I)V
iget-object v3, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
if-eqz v3, :cond_306
if-eqz v2, :cond_306
instance-of v3, v2, Ljava/lang/Integer;
if-nez v3, :cond_306
iget-object v3, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iget-object v3, v3, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->fieldName:Ljava/lang/Object;
instance-of v3, v3, Ljava/lang/Integer;
if-nez v3, :cond_306
invoke-virtual/range {p0 .. p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->popContext()V
:cond_306
invoke-interface/range {p1 .. p1}, Ljava/util/Map;->size()I
move-result v3
if-lez v3, :cond_31d
iget-object v2, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
invoke-static {v0, v6, v2}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/Class;Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)Ljava/lang/Object;
move-result-object v0
const/4 v2, 0x0
invoke-virtual {v1, v2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setResolveStatus(I)V
invoke-virtual {v1, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseObject(Ljava/lang/Object;)V
:try_end_319
.catchall {:try_start_2e5 .. :try_end_319} :catchall_697
invoke-virtual {v1, v12}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
return-object v0
:cond_31d
:try_start_31d
iget-object v0, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
invoke-virtual {v0, v6}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v3
const-class v4, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;
invoke-virtual {v4, v3}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v4
if-eqz v4, :cond_33c
const-class v4, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;
if-eq v3, v4, :cond_33c
const-class v4, Lcom/tradplus/ads/common/serialization/parser/deserializer/ThrowableDeserializer;
if-eq v3, v4, :cond_33c
const/4 v3, 0x0
invoke-virtual {v1, v3}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setResolveStatus(I)V
goto :goto_344
:cond_33c
instance-of v3, v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;
if-eqz v3, :cond_344
const/4 v7, 0x0
invoke-virtual {v1, v7}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setResolveStatus(I)V
:cond_344
:goto_344
invoke-interface {v0, v1, v6, v2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
:try_end_348
.catchall {:try_start_31d .. :try_end_348} :catchall_697
invoke-virtual {v1, v12}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
return-object v0
:cond_34c
const/4 v11, 0x0
:try_start_34d
const-string v7, "$ref"
if-ne v13, v7, :cond_452
if-eqz v12, :cond_452
if-eqz v0, :cond_35b
invoke-interface/range {p1 .. p1}, Ljava/util/Map;->size()I
move-result v7
if-nez v7, :cond_452
:cond_35b
sget-object v7, Lcom/tradplus/ads/common/serialization/parser/Feature;->DisableSpecialKeyDetect:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v3, v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v7
if-nez v7, :cond_452
const/4 v7, 0x4
invoke-interface {v3, v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v5
if-ne v5, v7, :cond_433
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v5
const/16 v6, 0xd
invoke-interface {v3, v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v6
const/16 v14, 0x10
if-ne v6, v14, :cond_388
invoke-interface {v10, v13, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:goto_381
move-object v5, v11
const/16 v6, 0xd
:goto_384
const/16 v9, 0x10
goto/16 :goto_7f
:cond_388
const-string v0, "@"
invoke-virtual {v0, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_3ab
iget-object v0, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
if-eqz v0, :cond_3fa
iget-object v0, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iget-object v5, v0, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;
instance-of v2, v5, [Ljava/lang/Object;
if-nez v2, :cond_407
instance-of v2, v5, Ljava/util/Collection;
if-eqz v2, :cond_3a2
goto/16 :goto_407
:cond_3a2
iget-object v2, v0, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->parent:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
if-eqz v2, :cond_3fa
iget-object v0, v0, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->parent:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iget-object v5, v0, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;
goto :goto_407
:cond_3ab
const-string v0, ".."
invoke-virtual {v0, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_3c6
iget-object v0, v12, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;
if-eqz v0, :cond_3ba
iget-object v5, v12, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;
goto :goto_407
:cond_3ba
new-instance v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;
invoke-direct {v0, v12, v5}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParseContext;Ljava/lang/String;)V
invoke-virtual {v1, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->addResolveTask(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;)V
:goto_3c2
invoke-virtual {v1, v9}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setResolveStatus(I)V
goto :goto_3fa
:cond_3c6
const-string v0, "$"
invoke-virtual {v0, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_3e7
move-object v0, v12
:goto_3cf
iget-object v2, v0, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->parent:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
if-eqz v2, :cond_3d6
iget-object v0, v0, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->parent:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
goto :goto_3cf
:cond_3d6
iget-object v2, v0, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;
if-eqz v2, :cond_3de
iget-object v0, v0, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;
move-object v5, v0
goto :goto_407
:cond_3de
new-instance v2, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;
invoke-direct {v2, v0, v5}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParseContext;Ljava/lang/String;)V
invoke-virtual {v1, v2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->addResolveTask(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;)V
goto :goto_3c2
:cond_3e7
invoke-static {v5}, Lcom/tradplus/ads/common/serialization/JSONPath;->compile(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/JSONPath;
move-result-object v0
invoke-virtual {v0}, Lcom/tradplus/ads/common/serialization/JSONPath;->isRef()Z
move-result v0
if-eqz v0, :cond_3fc
new-instance v0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;
invoke-direct {v0, v12, v5}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParseContext;Ljava/lang/String;)V
invoke-virtual {v1, v0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->addResolveTask(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser$ResolveTask;)V
goto :goto_3c2
:cond_3fa
:goto_3fa
move-object v5, v11
goto :goto_407
:cond_3fc
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONObject;
invoke-direct {v0}, Lcom/tradplus/ads/common/serialization/JSONObject;-><init>()V
const-string v2, "$ref"
invoke-virtual {v0, v2, v5}, Lcom/tradplus/ads/common/serialization/JSONObject;->fluentPut(Ljava/lang/String;Ljava/lang/Object;)Lcom/tradplus/ads/common/serialization/JSONObject;
move-result-object v5
:cond_407
:goto_407
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v0
const/16 v2, 0xd
if-ne v0, v2, :cond_418
const/16 v0, 0x10
invoke-interface {v3, v0}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
:try_end_414
.catchall {:try_start_34d .. :try_end_414} :catchall_697
invoke-virtual {v1, v12}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
return-object v5
:cond_418
:try_start_418
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "syntax error, "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_433
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "illegal ref, "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v3
invoke-static {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_452
const/4 v7, 0x4
if-nez v4, :cond_473
iget-object v7, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
if-eqz v7, :cond_469
iget-object v7, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iget-object v7, v7, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->fieldName:Ljava/lang/Object;
if-ne v2, v7, :cond_469
iget-object v7, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iget-object v7, v7, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;
if-ne v0, v7, :cond_469
iget-object v7, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
move-object v12, v7
goto :goto_473
:cond_469
invoke-virtual/range {p0 .. p2}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/tradplus/ads/common/serialization/parser/ParseContext;
move-result-object v4
if-nez v12, :cond_470
goto :goto_471
:cond_470
move-object v4, v12
:goto_471
move-object v12, v4
const/4 v4, 0x1
:cond_473
:goto_473
invoke-virtual/range {p1 .. p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v7
const-class v9, Lcom/tradplus/ads/common/serialization/JSONObject;
if-ne v7, v9, :cond_47f
if-nez v13, :cond_47f
const-string v13, "null"
:cond_47f
const/16 v7, 0x22
if-ne v5, v7, :cond_4ac
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanString()V
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v5
sget-object v6, Lcom/tradplus/ads/common/serialization/parser/Feature;->AllowISO8601DateFormat:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v3, v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v6
if-eqz v6, :cond_4a8
new-instance v6, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;
invoke-direct {v6, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;-><init>(Ljava/lang/String;)V
invoke-virtual {v6}, Lcom/tradplus/ads/common/serialization/parser/JSONScanner;->scanISO8601DateIfMatch()Z
move-result v7
if-eqz v7, :cond_4a5
invoke-virtual {v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->getCalendar()Ljava/util/Calendar;
move-result-object v5
invoke-virtual {v5}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
move-result-object v5
:cond_4a5
invoke-virtual {v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexerBase;->close()V
:cond_4a8
:goto_4a8
invoke-interface {v10, v13, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_4d2
:cond_4ac
const/16 v7, 0x30
if-lt v5, v7, :cond_4b4
const/16 v7, 0x39
if-le v5, v7, :cond_4b8
:cond_4b4
const/16 v7, 0x2d
if-ne v5, v7, :cond_519
:cond_4b8
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanNumber()V
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v5
const/4 v6, 0x2
if-ne v5, v6, :cond_4c7
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->integerValue()Ljava/lang/Number;
move-result-object v5
goto :goto_4a8
:cond_4c7
sget-object v5, Lcom/tradplus/ads/common/serialization/parser/Feature;->UseBigDecimal:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v3, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v5
invoke-interface {v3, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
move-result-object v5
goto :goto_4a8
:goto_4d2
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->skipWhitespace()V
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getCurrent()C
move-result v6
if-ne v6, v15, :cond_4e4
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->next()C
:goto_4de
const/16 v6, 0xd
const/16 v7, 0x10
goto/16 :goto_65e
:cond_4e4
const/16 v2, 0x7d
if-ne v6, v2, :cond_4f8
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->next()C
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->resetStringPosition()V
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
invoke-virtual {v1, v5, v13}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/tradplus/ads/common/serialization/parser/ParseContext;
:try_end_4f4
.catchall {:try_start_418 .. :try_end_4f4} :catchall_697
invoke-virtual {v1, v12}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
return-object v0
:cond_4f8
:try_start_4f8
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "syntax error, position at "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->pos()I
move-result v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_519
const/16 v7, 0x5b
if-ne v5, v7, :cond_565
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
new-instance v5, Lcom/tradplus/ads/common/serialization/JSONArray;
invoke-direct {v5}, Lcom/tradplus/ads/common/serialization/JSONArray;-><init>()V
if-eqz v2, :cond_52d
invoke-virtual/range {p2 .. p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v7
const-class v9, Ljava/lang/Integer;
:cond_52d
if-nez v2, :cond_532
invoke-virtual {v1, v12}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
:cond_532
invoke-virtual {v1, v5, v13}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
sget-object v7, Lcom/tradplus/ads/common/serialization/parser/Feature;->UseObjectArray:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v3, v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v7
if-eqz v7, :cond_541
invoke-virtual {v5}, Lcom/tradplus/ads/common/serialization/JSONArray;->toArray()[Ljava/lang/Object;
move-result-object v5
:cond_541
invoke-interface {v10, v13, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v5
const/16 v7, 0xd
if-ne v5, v7, :cond_553
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
:try_end_54f
.catchall {:try_start_4f8 .. :try_end_54f} :catchall_697
invoke-virtual {v1, v12}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
return-object v0
:cond_553
:try_start_553
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v5
const/16 v7, 0x10
if-ne v5, v7, :cond_55f
const/16 v6, 0xd
goto/16 :goto_65e
:cond_55f
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {v0, v6}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_565
const/16 v6, 0x7b
if-ne v5, v6, :cond_63d
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
if-eqz v2, :cond_578
invoke-virtual/range {p2 .. p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v5
const-class v6, Ljava/lang/Integer;
if-ne v5, v6, :cond_578
const/4 v5, 0x1
goto :goto_579
:cond_578
const/4 v5, 0x0
:goto_579
sget-object v6, Lcom/tradplus/ads/common/serialization/parser/Feature;->CustomMapDeserializer:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v3, v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v6
if-eqz v6, :cond_5a8
iget-object v6, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
const-class v7, Ljava/util/Map;
invoke-virtual {v6, v7}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
move-result-object v6
check-cast v6, Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getFeatures()I
move-result v7
sget-object v9, Lcom/tradplus/ads/common/serialization/parser/Feature;->OrderedField:Lcom/tradplus/ads/common/serialization/parser/Feature;
iget v9, v9, Lcom/tradplus/ads/common/serialization/parser/Feature;->mask:I
and-int/2addr v7, v9
if-eqz v7, :cond_5a1
const-class v7, Ljava/util/Map;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->getFeatures()I
move-result v9
invoke-virtual {v6, v7, v9}, Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;->createMap(Ljava/lang/reflect/Type;I)Ljava/util/Map;
move-result-object v6
goto :goto_5b3
:cond_5a1
const-class v7, Ljava/util/Map;
invoke-virtual {v6, v7}, Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;->createMap(Ljava/lang/reflect/Type;)Ljava/util/Map;
move-result-object v6
goto :goto_5b3
:cond_5a8
new-instance v6, Lcom/tradplus/ads/common/serialization/JSONObject;
sget-object v7, Lcom/tradplus/ads/common/serialization/parser/Feature;->OrderedField:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v3, v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v7
invoke-direct {v6, v7}, Lcom/tradplus/ads/common/serialization/JSONObject;-><init>(Z)V
:goto_5b3
if-nez v5, :cond_5ba
invoke-virtual {v1, v12, v6, v13}, 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 v7
goto :goto_5bb
:cond_5ba
move-object v7, v11
:goto_5bb
iget-object v9, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->c:Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldTypeResolver;
if-eqz v9, :cond_5dc
if-eqz v13, :cond_5c6
invoke-virtual {v13}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v9
goto :goto_5c7
:cond_5c6
move-object v9, v11
:goto_5c7
iget-object v14, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->c:Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldTypeResolver;
invoke-interface {v14, v0, v9}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldTypeResolver;->resolve(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Type;
move-result-object v9
if-eqz v9, :cond_5dc
iget-object v14, v1, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
invoke-virtual {v14, v9}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
move-result-object v14
invoke-interface {v14, v1, v9, v13}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v9
const/16 v16, 0x1
goto :goto_5df
:cond_5dc
move-object v9, v11
const/16 v16, 0x0
:goto_5df
if-nez v16, :cond_5e5
invoke-virtual {v1, v6, v13}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v9
:cond_5e5
if-eqz v7, :cond_5eb
if-eq v6, v9, :cond_5eb
iput-object v0, v7, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;
:cond_5eb
if-eqz v13, :cond_5f4
invoke-virtual {v13}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v6
invoke-virtual {v1, v0, v6}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->checkMapResolve(Ljava/util/Map;Ljava/lang/Object;)V
:cond_5f4
invoke-interface {v10, v13, v9}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
if-eqz v5, :cond_5fc
invoke-virtual {v1, v9, v13}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/tradplus/ads/common/serialization/parser/ParseContext;
:cond_5fc
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v6
const/16 v7, 0xd
if-ne v6, v7, :cond_60e
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
invoke-virtual {v1, v12}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
:try_end_60a
.catchall {:try_start_553 .. :try_end_60a} :catchall_697
invoke-virtual {v1, v12}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
return-object v0
:cond_60e
:try_start_60e
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v6
const/16 v7, 0x10
if-ne v6, v7, :cond_622
if-eqz v5, :cond_61d
invoke-virtual/range {p0 .. p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->popContext()V
goto/16 :goto_4de
:cond_61d
invoke-virtual {v1, v12}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
goto/16 :goto_4de
:cond_622
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "syntax error, "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->tokenName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_63d
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
invoke-virtual/range {p0 .. p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v5
invoke-interface {v10, v13, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v5
const/16 v6, 0xd
if-ne v5, v6, :cond_656
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
:try_end_652
.catchall {:try_start_60e .. :try_end_652} :catchall_697
invoke-virtual {v1, v12}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
return-object v0
:cond_656
:try_start_656
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v5
const/16 v7, 0x10
if-ne v5, v7, :cond_662
:goto_65e
move-object v5, v11
const/4 v7, 0x4
goto/16 :goto_384
:cond_662
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "syntax error, position at "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->pos()I
move-result v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_683
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
const-string v2, "object key level > 512"
invoke-direct {v0, v2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_68b
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {v0, v6}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_691
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
invoke-direct {v0, v6}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_697
.catchall {:try_start_656 .. :try_end_697} :catchall_697
:catchall_697
move-exception v0
goto :goto_69b
:catchall_699
move-exception v0
move-object v12, v4
:goto_69b
invoke-virtual {v1, v12}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
goto :goto_6a0
:goto_69f
throw v0
:goto_6a0
goto :goto_69f
.end method
.method public parseObject(Ljava/lang/Object;)V
.registers 12
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
invoke-virtual {v1, v0}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
move-result-object v1
instance-of v2, v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;
const/4 v3, 0x0
if-eqz v2, :cond_12
check-cast v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;
goto :goto_13
:cond_12
move-object v1, v3
:goto_13
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v2
const/16 v4, 0xc
const/16 v5, 0x10
if-eq v2, v4, :cond_45
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v2
if-ne v2, v5, :cond_28
goto :goto_45
:cond_28
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "syntax error, expect {, actual "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->tokenName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:cond_45
:goto_45
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
iget-object v4, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;
invoke-interface {v2, v4}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->scanSymbol(Lcom/tradplus/ads/common/serialization/parser/SymbolTable;)Ljava/lang/String;
move-result-object v2
const/16 v4, 0xd
if-nez v2, :cond_72
iget-object v6, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v6
if-ne v6, v4, :cond_5f
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p1, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
return-void
:cond_5f
iget-object v6, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v6}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v6
if-ne v6, v5, :cond_72
iget-object v6, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
sget-object v7, Lcom/tradplus/ads/common/serialization/parser/Feature;->AllowArbitraryCommas:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v6, v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v6
if-eqz v6, :cond_72
goto :goto_45
:cond_72
if-eqz v1, :cond_79
invoke-virtual {v1, v2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;->getFieldDeserializer(Ljava/lang/String;)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;
move-result-object v6
goto :goto_7a
:cond_79
move-object v6, v3
:goto_7a
if-nez v6, :cond_bf
iget-object v6, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
sget-object v7, Lcom/tradplus/ads/common/serialization/parser/Feature;->IgnoreNotMatch:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v6, v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v6
if-eqz v6, :cond_9c
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextTokenWithColon()V
invoke-virtual {p0}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v2
if-ne v2, v4, :cond_45
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken()V
return-void
:cond_9c
new-instance p1, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "setter not found, class "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v0, ", property "
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:cond_bf
iget-object v2, v6, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/tradplus/ads/common/serialization/util/FieldInfo;
iget-object v7, v2, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;
iget-object v2, v2, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type;
sget-object v8, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
const/4 v9, 0x2
if-ne v7, v8, :cond_d6
iget-object v7, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v7, v9}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextTokenWithColon(I)V
sget-object v7, Lcom/tradplus/ads/common/serialization/serializer/IntegerCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/IntegerCodec;
invoke-virtual {v7, p0, v2, v3}, Lcom/tradplus/ads/common/serialization/serializer/IntegerCodec;->deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
goto :goto_108
:cond_d6
const-class v8, Ljava/lang/String;
if-ne v7, v8, :cond_e5
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
const/4 v7, 0x4
invoke-interface {v2, v7}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextTokenWithColon(I)V
invoke-static {p0}, Lcom/tradplus/ads/common/serialization/serializer/StringCodec;->deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;)Ljava/lang/Object;
move-result-object v2
goto :goto_108
:cond_e5
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
if-ne v7, v8, :cond_f5
iget-object v7, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v7, v9}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextTokenWithColon(I)V
sget-object v7, Lcom/tradplus/ads/common/serialization/serializer/LongCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/LongCodec;
invoke-virtual {v7, p0, v2, v3}, Lcom/tradplus/ads/common/serialization/serializer/LongCodec;->deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
goto :goto_108
:cond_f5
iget-object v8, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
invoke-virtual {v8, v7, v2}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
move-result-object v7
iget-object v8, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v7}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;->getFastMatchToken()I
move-result v9
invoke-interface {v8, v9}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextTokenWithColon(I)V
invoke-interface {v7, p0, v2, v3}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
:goto_108
invoke-virtual {v6, p1, v2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v2
if-ne v2, v5, :cond_115
goto/16 :goto_45
:cond_115
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result v2
if-ne v2, v4, :cond_45
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p1, v5}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->nextToken(I)V
return-void
.end method
.method public popContext()V
.registers 4
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
sget-object v1, Lcom/tradplus/ads/common/serialization/parser/Feature;->DisableCircularReferenceDetect:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v0, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v0
if-eqz v0, :cond_b
return-void
:cond_b
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iget-object v0, v0, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->parent:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iget v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->h:I
if-gtz v0, :cond_16
return-void
:cond_16
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->h:I
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->g:[Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iget v1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->h:I
const/4 v2, 0x0
aput-object v2, v0, v1
return-void
.end method
.method public resolveReference(Ljava/lang/String;)Ljava/lang/Object;
.registers 6
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->g:[Lcom/tradplus/ads/common/serialization/parser/ParseContext;
const/4 v1, 0x0
if-nez v0, :cond_6
return-object v1
:cond_6
const/4 v0, 0x0
:goto_7
iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->g:[Lcom/tradplus/ads/common/serialization/parser/ParseContext;
array-length v3, v2
if-ge v0, v3, :cond_22
iget v3, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->h:I
if-ge v0, v3, :cond_22
aget-object v2, v2, v0
invoke-virtual {v2}, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->toString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v3, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_1f
iget-object p1, v2, Lcom/tradplus/ads/common/serialization/parser/ParseContext;->object:Ljava/lang/Object;
return-object p1
:cond_1f
add-int/lit8 v0, v0, 0x1
goto :goto_7
:cond_22
return-object v1
.end method
.method public setConfig(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;)V
.registers 2
iput-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
return-void
.end method
.method public setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/tradplus/ads/common/serialization/parser/ParseContext;
.registers 6
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
sget-object v1, Lcom/tradplus/ads/common/serialization/parser/Feature;->DisableCircularReferenceDetect:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v0, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v0
if-eqz v0, :cond_c
const/4 p1, 0x0
return-object p1
:cond_c
new-instance v0, Lcom/tradplus/ads/common/serialization/parser/ParseContext;
invoke-direct {v0, p1, p2, p3}, Lcom/tradplus/ads/common/serialization/parser/ParseContext;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)V
iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
invoke-direct {p0, p1}, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->a(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
return-object p1
.end method
.method public setContext(Ljava/lang/Object;Ljava/lang/Object;)Lcom/tradplus/ads/common/serialization/parser/ParseContext;
.registers 5
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
sget-object v1, Lcom/tradplus/ads/common/serialization/parser/Feature;->DisableCircularReferenceDetect:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v0, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v0
if-eqz v0, :cond_c
const/4 p1, 0x0
return-object p1
:cond_c
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
invoke-virtual {p0, v0, p1, p2}, 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
return-object p1
.end method
.method public setContext(Lcom/tradplus/ads/common/serialization/parser/ParseContext;)V
.registers 4
iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
sget-object v1, Lcom/tradplus/ads/common/serialization/parser/Feature;->DisableCircularReferenceDetect:Lcom/tradplus/ads/common/serialization/parser/Feature;
invoke-interface {v0, v1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->isEnabled(Lcom/tradplus/ads/common/serialization/parser/Feature;)Z
move-result v0
if-eqz v0, :cond_b
return-void
:cond_b
iput-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->b:Lcom/tradplus/ads/common/serialization/parser/ParseContext;
return-void
.end method
.method public setDateFomrat(Ljava/text/DateFormat;)V
.registers 2
iput-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->f:Ljava/text/DateFormat;
return-void
.end method
.method public setDateFormat(Ljava/lang/String;)V
.registers 2
iput-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->e:Ljava/lang/String;
const/4 p1, 0x0
iput-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->f:Ljava/text/DateFormat;
return-void
.end method
.method public setFieldTypeResolver(Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldTypeResolver;)V
.registers 2
iput-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->c:Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldTypeResolver;
return-void
.end method
.method public setResolveStatus(I)V
.registers 2
iput p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->resolveStatus:I
return-void
.end method
.method public throwException(I)V
.registers 5
new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "syntax error, expect "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {p1}, Lcom/tradplus/ads/common/serialization/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object p1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, ", actual "
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/DefaultJSONParser;->lexer:Lcom/tradplus/ads/common/serialization/parser/JSONLexer;
invoke-interface {p1}, Lcom/tradplus/ads/common/serialization/parser/JSONLexer;->token()I
move-result p1
invoke-static {p1}, Lcom/tradplus/ads/common/serialization/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object p1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.end method