.class Lcom/alibaba/fastjson/JSONPath$JSONPathParser; .super Ljava/lang/Object; .source "JSONPath.java" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/alibaba/fastjson/JSONPath; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x8 name = "JSONPathParser" .end annotation # instance fields .field private ch:C .field private level:I .field private final path:Ljava/lang/String; .field private pos:I # direct methods .method public constructor (Ljava/lang/String;)V .locals 0 .line 320 invoke-direct {p0}, Ljava/lang/Object;->()V .line 321 iput-object p1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->path:Ljava/lang/String; .line 322 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V return-void .end method .method static isDigitFirst(C)Z .locals 1 const/16 v0, 0x2d if-eq p0, v0, :cond_1 const/16 v0, 0x2b if-eq p0, v0, :cond_1 const/16 v0, 0x30 if-lt p0, v0, :cond_0 const/16 v0, 0x39 if-gt p0, v0, :cond_0 goto :goto_0 :cond_0 const/4 p0, 0x0 goto :goto_1 :cond_1 :goto_0 const/4 p0, 0x1 :goto_1 return p0 .end method # virtual methods .method accept(C)V .locals 3 .line 888 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C if-ne v0, p1, :cond_1 .line 892 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->isEOF()Z move-result p1 if-nez p1, :cond_0 .line 893 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V :cond_0 return-void .line 889 :cond_1 new-instance v0, Lcom/alibaba/fastjson/JSONPathException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v2, "expect \'" invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; const-string p1, ", but \'" invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget-char p1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; const-string 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/alibaba/fastjson/JSONPathException;->(Ljava/lang/String;)V throw v0 .end method .method buildArraySegement(Ljava/lang/String;)Lcom/alibaba/fastjson/JSONPath$Segement; .locals 9 .line 922 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v0 const/4 v1, 0x0 .line 923 invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C move-result v2 const/4 v3, 0x1 sub-int/2addr v0, v3 .line 924 invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C move-result v4 const/16 v5, 0x2c .line 926 invoke-virtual {p1, v5}, Ljava/lang/String;->indexOf(I)I move-result v5 .line 928 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v6 const/4 v7, 0x2 const/4 v8, -0x1 if-le v6, v7, :cond_2 const/16 v6, 0x27 if-ne v2, v6, :cond_2 if-ne v4, v6, :cond_2 if-ne v5, v8, :cond_0 .line 931 invoke-virtual {p1, v3, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object p1 .line 932 new-instance v0, Lcom/alibaba/fastjson/JSONPath$PropertySegement; invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONPath$PropertySegement;->(Ljava/lang/String;)V return-object v0 :cond_0 const-string v0, "," .line 935 invoke-virtual {p1, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; move-result-object p1 .line 936 array-length v0, p1 new-array v0, v0, [Ljava/lang/String; .line 937 :goto_0 array-length v2, p1 if-ge v1, v2, :cond_1 .line 938 aget-object v2, p1, v1 .line 939 invoke-virtual {v2}, Ljava/lang/String;->length()I move-result v4 sub-int/2addr v4, v3 invoke-virtual {v2, v3, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v2 aput-object v2, v0, v1 add-int/lit8 v1, v1, 0x1 goto :goto_0 .line 942 :cond_1 new-instance p1, Lcom/alibaba/fastjson/JSONPath$MultiPropertySegement; invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONPath$MultiPropertySegement;->([Ljava/lang/String;)V return-object p1 :cond_2 const/16 v0, 0x3a .line 945 invoke-virtual {p1, v0}, Ljava/lang/String;->indexOf(I)I move-result v0 if-ne v5, v8, :cond_3 if-ne v0, v8, :cond_3 .line 947 invoke-static {p1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result p1 .line 948 new-instance v0, Lcom/alibaba/fastjson/JSONPath$ArrayAccessSegement; invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONPath$ArrayAccessSegement;->(I)V return-object v0 :cond_3 if-eq v5, v8, :cond_5 const-string v0, "," .line 952 invoke-virtual {p1, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; move-result-object p1 .line 953 array-length v0, p1 new-array v0, v0, [I .line 954 :goto_1 array-length v2, p1 if-ge v1, v2, :cond_4 .line 955 aget-object v2, p1, v1 invoke-static {v2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v2 aput v2, v0, v1 add-int/lit8 v1, v1, 0x1 goto :goto_1 .line 957 :cond_4 new-instance p1, Lcom/alibaba/fastjson/JSONPath$MultiIndexSegement; invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONPath$MultiIndexSegement;->([I)V return-object p1 :cond_5 if-eq v0, v8, :cond_e const-string v0, ":" .line 961 invoke-virtual {p1, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; move-result-object p1 .line 962 array-length v0, p1 new-array v0, v0, [I const/4 v2, 0x0 .line 963 :goto_2 array-length v4, p1 if-ge v2, v4, :cond_8 .line 964 aget-object v4, p1, v2 .line 965 invoke-virtual {v4}, Ljava/lang/String;->isEmpty()Z move-result v5 if-eqz v5, :cond_7 if-nez v2, :cond_6 .line 967 aput v1, v0, v2 goto :goto_3 .line 969 :cond_6 new-instance p1, Ljava/lang/UnsupportedOperationException; invoke-direct {p1}, Ljava/lang/UnsupportedOperationException;->()V throw p1 .line 972 :cond_7 invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v4 aput v4, v0, v2 :goto_3 add-int/lit8 v2, v2, 0x1 goto :goto_2 .line 976 :cond_8 aget p1, v0, v1 .line 978 array-length v1, v0 if-le v1, v3, :cond_9 .line 979 aget v8, v0, v3 .line 984 :cond_9 array-length v1, v0 const/4 v2, 0x3 if-ne v1, v2, :cond_a .line 985 aget v3, v0, v7 :cond_a if-ltz v8, :cond_c if-lt v8, p1, :cond_b goto :goto_4 .line 991 :cond_b new-instance v0, Ljava/lang/UnsupportedOperationException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v2, "end must greater than or equals start. start " invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; const-string p1, ", end " invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw v0 :cond_c :goto_4 if-lez v3, :cond_d .line 998 new-instance v0, Lcom/alibaba/fastjson/JSONPath$RangeSegement; invoke-direct {v0, p1, v8, v3}, Lcom/alibaba/fastjson/JSONPath$RangeSegement;->(III)V return-object v0 .line 996 :cond_d new-instance p1, Ljava/lang/UnsupportedOperationException; new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "step must greater than zero : " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw p1 .line 1001 :cond_e new-instance p1, Ljava/lang/UnsupportedOperationException; invoke-direct {p1}, Ljava/lang/UnsupportedOperationException;->()V throw p1 .end method .method public explain()[Lcom/alibaba/fastjson/JSONPath$Segement; .locals 4 .line 898 iget-object v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->path:Ljava/lang/String; if-eqz v0, :cond_2 iget-object v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->path:Ljava/lang/String; invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z move-result v0 if-nez v0, :cond_2 const/16 v0, 0x8 .line 902 new-array v0, v0, [Lcom/alibaba/fastjson/JSONPath$Segement; .line 905 :goto_0 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readSegement()Lcom/alibaba/fastjson/JSONPath$Segement; move-result-object v1 if-nez v1, :cond_1 .line 912 iget v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->level:I array-length v2, v0 if-ne v1, v2, :cond_0 return-object v0 .line 916 :cond_0 iget v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->level:I new-array v1, v1, [Lcom/alibaba/fastjson/JSONPath$Segement; .line 917 iget v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->level:I const/4 v3, 0x0 invoke-static {v0, v3, v1, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V return-object v1 .line 909 :cond_1 iget v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->level:I add-int/lit8 v3, v2, 0x1 iput v3, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->level:I aput-object v1, v0, v2 goto :goto_0 .line 899 :cond_2 new-instance v0, Ljava/lang/IllegalArgumentException; invoke-direct {v0}, Ljava/lang/IllegalArgumentException;->()V throw v0 .end method .method isEOF()Z .locals 2 .line 330 iget v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->pos:I iget-object v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->path:Ljava/lang/String; invoke-virtual {v1}, Ljava/lang/String;->length()I move-result v1 if-lt v0, v1, :cond_0 const/4 v0, 0x1 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 return v0 .end method .method next()V .locals 3 .line 326 iget-object v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->path:Ljava/lang/String; iget v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->pos:I add-int/lit8 v2, v1, 0x1 iput v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->pos:I invoke-virtual {v0, v1}, Ljava/lang/String;->charAt(I)C move-result v0 iput-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C return-void .end method .method parseArrayAccess(Z)Lcom/alibaba/fastjson/JSONPath$Segement; .locals 11 if-eqz p1, :cond_0 const/16 v0, 0x5b .line 419 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V .line 424 :cond_0 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v1, 0x3f const/16 v2, 0x28 const/4 v3, 0x0 const/4 v4, 0x1 if-ne v0, v1, :cond_2 .line 425 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 426 invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V .line 427 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v1, 0x40 if-ne v0, v1, :cond_1 .line 428 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V const/16 v0, 0x2e .line 429 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V :cond_1 const/4 v0, 0x1 goto :goto_0 :cond_2 const/4 v0, 0x0 :goto_0 const/16 v1, 0x5d if-nez v0, :cond_8 .line 435 iget-char v5, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C invoke-static {v5}, Lcom/alibaba/fastjson/util/IOUtils;->firstIdentifier(C)Z move-result v5 if-eqz v5, :cond_3 goto :goto_3 .line 701 :cond_3 iget v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->pos:I sub-int/2addr v0, v4 .line 702 :goto_1 iget-char v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v3, 0x2f if-eq v2, v1, :cond_4 iget-char v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C if-eq v2, v3, :cond_4 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->isEOF()Z move-result v2 if-nez v2, :cond_4 .line 703 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V goto :goto_1 :cond_4 if-eqz p1, :cond_5 .line 708 iget v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->pos:I sub-int/2addr v2, v4 goto :goto_2 .line 710 :cond_5 iget-char v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C if-ne v2, v3, :cond_6 .line 711 iget v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->pos:I sub-int/2addr v2, v4 goto :goto_2 .line 713 :cond_6 iget v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->pos:I .line 717 :goto_2 iget-object v3, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->path:Ljava/lang/String; invoke-virtual {v3, v0, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v0 .line 719 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->buildArraySegement(Ljava/lang/String;)Lcom/alibaba/fastjson/JSONPath$Segement; move-result-object v0 if-eqz p1, :cond_7 .line 721 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->isEOF()Z move-result p1 if-nez p1, :cond_7 .line 722 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V :cond_7 return-object v0 .line 436 :cond_8 :goto_3 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readName()Ljava/lang/String; move-result-object v5 .line 438 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->skipWhitespace()V const/16 v6, 0x29 if-eqz v0, :cond_a .line 440 iget-char v7, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C if-ne v7, v6, :cond_a .line 441 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V if-eqz p1, :cond_9 .line 443 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V .line 446 :cond_9 new-instance p1, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v0, Lcom/alibaba/fastjson/JSONPath$NotNullSegement; invoke-direct {v0, v5}, Lcom/alibaba/fastjson/JSONPath$NotNullSegement;->(Ljava/lang/String;)V invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object p1 :cond_a if-eqz p1, :cond_b .line 449 iget-char v7, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C if-ne v7, v1, :cond_b .line 450 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 451 new-instance p1, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v0, Lcom/alibaba/fastjson/JSONPath$NotNullSegement; invoke-direct {v0, v5}, Lcom/alibaba/fastjson/JSONPath$NotNullSegement;->(Ljava/lang/String;)V invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object p1 .line 454 :cond_b invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readOp()Lcom/alibaba/fastjson/JSONPath$Operator; move-result-object v7 .line 456 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->skipWhitespace()V .line 458 sget-object v8, Lcom/alibaba/fastjson/JSONPath$Operator;->BETWEEN:Lcom/alibaba/fastjson/JSONPath$Operator; if-eq v7, v8, :cond_3c sget-object v8, Lcom/alibaba/fastjson/JSONPath$Operator;->NOT_BETWEEN:Lcom/alibaba/fastjson/JSONPath$Operator; if-ne v7, v8, :cond_c goto/16 :goto_13 .line 484 :cond_c sget-object v8, Lcom/alibaba/fastjson/JSONPath$Operator;->IN:Lcom/alibaba/fastjson/JSONPath$Operator; if-eq v7, v8, :cond_27 sget-object v8, Lcom/alibaba/fastjson/JSONPath$Operator;->NOT_IN:Lcom/alibaba/fastjson/JSONPath$Operator; if-ne v7, v8, :cond_d goto/16 :goto_b .line 589 :cond_d iget-char v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v8, 0x27 if-eq v2, v8, :cond_16 iget-char v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v8, 0x22 if-ne v2, v8, :cond_e goto :goto_4 .line 663 :cond_e iget-char v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C invoke-static {v2}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->isDigitFirst(C)Z move-result v2 if-eqz v2, :cond_11 .line 664 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readLongValue()J move-result-wide v2 if-eqz v0, :cond_f .line 667 invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V :cond_f if-eqz p1, :cond_10 .line 671 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V .line 674 :cond_10 new-instance p1, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement; invoke-direct {v0, v5, v2, v3, v7}, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->(Ljava/lang/String;JLcom/alibaba/fastjson/JSONPath$Operator;)V invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object p1 .line 677 :cond_11 iget-char p1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x6e if-ne p1, v2, :cond_15 .line 678 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readName()Ljava/lang/String; move-result-object p1 const-string v2, "null" .line 679 invoke-virtual {v2, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_15 if-eqz v0, :cond_12 .line 681 invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V .line 683 :cond_12 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V .line 685 sget-object p1, Lcom/alibaba/fastjson/JSONPath$Operator;->EQ:Lcom/alibaba/fastjson/JSONPath$Operator; if-ne v7, p1, :cond_13 .line 686 new-instance p1, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v0, Lcom/alibaba/fastjson/JSONPath$NullSegement; invoke-direct {v0, v5}, Lcom/alibaba/fastjson/JSONPath$NullSegement;->(Ljava/lang/String;)V invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object p1 .line 689 :cond_13 sget-object p1, Lcom/alibaba/fastjson/JSONPath$Operator;->NE:Lcom/alibaba/fastjson/JSONPath$Operator; if-ne v7, p1, :cond_14 .line 690 new-instance p1, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v0, Lcom/alibaba/fastjson/JSONPath$NotNullSegement; invoke-direct {v0, v5}, Lcom/alibaba/fastjson/JSONPath$NotNullSegement;->(Ljava/lang/String;)V invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object p1 .line 693 :cond_14 new-instance p1, Ljava/lang/UnsupportedOperationException; invoke-direct {p1}, Ljava/lang/UnsupportedOperationException;->()V throw p1 .line 697 :cond_15 new-instance p1, Ljava/lang/UnsupportedOperationException; invoke-direct {p1}, Ljava/lang/UnsupportedOperationException;->()V throw p1 .line 590 :cond_16 :goto_4 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readString()Ljava/lang/String; move-result-object v2 if-eqz v0, :cond_17 .line 592 invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V :cond_17 if-eqz p1, :cond_18 .line 596 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V .line 599 :cond_18 sget-object p1, Lcom/alibaba/fastjson/JSONPath$Operator;->RLIKE:Lcom/alibaba/fastjson/JSONPath$Operator; if-ne v7, p1, :cond_19 .line 600 new-instance p1, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v0, Lcom/alibaba/fastjson/JSONPath$RlikeSegement; invoke-direct {v0, v5, v2, v3}, Lcom/alibaba/fastjson/JSONPath$RlikeSegement;->(Ljava/lang/String;Ljava/lang/String;Z)V invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object p1 .line 603 :cond_19 sget-object p1, Lcom/alibaba/fastjson/JSONPath$Operator;->NOT_RLIKE:Lcom/alibaba/fastjson/JSONPath$Operator; if-ne v7, p1, :cond_1a .line 604 new-instance p1, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v0, Lcom/alibaba/fastjson/JSONPath$RlikeSegement; invoke-direct {v0, v5, v2, v4}, Lcom/alibaba/fastjson/JSONPath$RlikeSegement;->(Ljava/lang/String;Ljava/lang/String;Z)V invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object p1 .line 607 :cond_1a sget-object p1, Lcom/alibaba/fastjson/JSONPath$Operator;->LIKE:Lcom/alibaba/fastjson/JSONPath$Operator; if-eq v7, p1, :cond_1b sget-object p1, Lcom/alibaba/fastjson/JSONPath$Operator;->NOT_LIKE:Lcom/alibaba/fastjson/JSONPath$Operator; if-ne v7, p1, :cond_1f :cond_1b :goto_5 const-string p1, "%%" .line 608 invoke-virtual {v2, p1}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result p1 const/4 v0, -0x1 if-eq p1, v0, :cond_1c const-string p1, "%%" const-string v0, "%" .line 609 invoke-virtual {v2, p1, v0}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v2 goto :goto_5 .line 612 :cond_1c sget-object p1, Lcom/alibaba/fastjson/JSONPath$Operator;->NOT_LIKE:Lcom/alibaba/fastjson/JSONPath$Operator; if-ne v7, p1, :cond_1d const/4 p1, 0x1 goto :goto_6 :cond_1d const/4 p1, 0x0 :goto_6 const/16 v1, 0x25 .line 614 invoke-virtual {v2, v1}, Ljava/lang/String;->indexOf(I)I move-result v6 if-ne v6, v0, :cond_20 .line 616 sget-object p1, Lcom/alibaba/fastjson/JSONPath$Operator;->LIKE:Lcom/alibaba/fastjson/JSONPath$Operator; if-ne v7, p1, :cond_1e .line 617 sget-object v7, Lcom/alibaba/fastjson/JSONPath$Operator;->EQ:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_7 .line 619 :cond_1e sget-object v7, Lcom/alibaba/fastjson/JSONPath$Operator;->NE:Lcom/alibaba/fastjson/JSONPath$Operator; .line 660 :cond_1f :goto_7 new-instance p1, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v0, Lcom/alibaba/fastjson/JSONPath$StringOpSegement; invoke-direct {v0, v5, v2, v7}, Lcom/alibaba/fastjson/JSONPath$StringOpSegement;->(Ljava/lang/String;Ljava/lang/String;Lcom/alibaba/fastjson/JSONPath$Operator;)V invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object p1 :cond_20 const-string v0, "%" .line 622 invoke-virtual {v2, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; move-result-object v0 const/4 v7, 0x0 const/4 v8, 0x2 if-nez v6, :cond_23 .line 628 invoke-virtual {v2}, Ljava/lang/String;->length()I move-result v6 sub-int/2addr v6, v4 invoke-virtual {v2, v6}, Ljava/lang/String;->charAt(I)C move-result v2 if-ne v2, v1, :cond_21 .line 629 array-length v1, v0 sub-int/2addr v1, v4 new-array v1, v1, [Ljava/lang/String; .line 630 array-length v2, v1 invoke-static {v0, v4, v1, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v6, v1 :goto_8 move-object v4, v7 goto :goto_a .line 632 :cond_21 array-length v1, v0 sub-int/2addr v1, v4 aget-object v1, v0, v1 .line 633 array-length v2, v0 if-le v2, v8, :cond_22 .line 634 array-length v2, v0 sub-int/2addr v2, v8 new-array v2, v2, [Ljava/lang/String; .line 635 array-length v6, v2 invoke-static {v0, v4, v2, v3, v6}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v6, v2 move-object v4, v7 goto :goto_9 :cond_22 move-object v4, v7 move-object v6, v4 :goto_9 move-object v7, v1 goto :goto_a .line 638 :cond_23 invoke-virtual {v2}, Ljava/lang/String;->length()I move-result v6 sub-int/2addr v6, v4 invoke-virtual {v2, v6}, Ljava/lang/String;->charAt(I)C move-result v2 if-ne v2, v1, :cond_24 move-object v6, v0 goto :goto_8 .line 641 :cond_24 array-length v1, v0 if-ne v1, v4, :cond_25 .line 642 aget-object v0, v0, v3 move-object v4, v0 move-object v6, v7 goto :goto_a .line 643 :cond_25 array-length v1, v0 if-ne v1, v8, :cond_26 .line 644 aget-object v1, v0, v3 .line 645 aget-object v0, v0, v4 move-object v4, v1 move-object v6, v7 move-object v7, v0 goto :goto_a .line 647 :cond_26 aget-object v1, v0, v3 .line 648 array-length v2, v0 sub-int/2addr v2, v4 aget-object v2, v0, v2 .line 649 array-length v6, v0 sub-int/2addr v6, v8 new-array v6, v6, [Ljava/lang/String; .line 650 array-length v7, v6 invoke-static {v0, v4, v6, v3, v7}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v4, v1 move-object v7, v2 .line 654 :goto_a new-instance v0, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v1, Lcom/alibaba/fastjson/JSONPath$MatchSegement; move-object v2, v1 move-object v3, v5 move-object v5, v7 move v7, p1 invoke-direct/range {v2 .. v7}, Lcom/alibaba/fastjson/JSONPath$MatchSegement;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Z)V invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object v0 .line 485 :cond_27 :goto_b sget-object v8, Lcom/alibaba/fastjson/JSONPath$Operator;->NOT_IN:Lcom/alibaba/fastjson/JSONPath$Operator; if-ne v7, v8, :cond_28 const/4 v8, 0x1 goto :goto_c :cond_28 const/4 v8, 0x0 .line 486 :goto_c invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V .line 488 new-instance v2, Ljava/util/ArrayList; invoke-direct {v2}, Ljava/util/ArrayList;->()V .line 490 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readValue()Ljava/lang/Object; move-result-object v7 .line 491 invoke-interface {v2, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z .line 494 :goto_d invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->skipWhitespace()V .line 495 iget-char v7, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v9, 0x2c if-eq v7, v9, :cond_3b .line 504 invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V if-eqz v0, :cond_29 .line 506 invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V :cond_29 if-eqz p1, :cond_2a .line 510 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V .line 517 :cond_2a invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object p1 const/4 v0, 0x1 const/4 v1, 0x1 const/4 v6, 0x1 :cond_2b :goto_e invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z move-result v7 if-eqz v7, :cond_2e invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v7 if-nez v7, :cond_2c if-eqz v0, :cond_2b const/4 v0, 0x0 goto :goto_e .line 525 :cond_2c invoke-virtual {v7}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v7 if-eqz v0, :cond_2d .line 526 const-class v9, Ljava/lang/Byte; if-eq v7, v9, :cond_2d const-class v9, Ljava/lang/Short; if-eq v7, v9, :cond_2d const-class v9, Ljava/lang/Integer; if-eq v7, v9, :cond_2d const-class v9, Ljava/lang/Long; if-eq v7, v9, :cond_2d const/4 v0, 0x0 const/4 v6, 0x0 :cond_2d if-eqz v1, :cond_2b .line 532 const-class v9, Ljava/lang/String; if-eq v7, v9, :cond_2b const/4 v1, 0x0 goto :goto_e .line 537 :cond_2e invoke-interface {v2}, Ljava/util/List;->size()I move-result p1 if-ne p1, v4, :cond_30 invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object p1 if-nez p1, :cond_30 if-eqz v8, :cond_2f .line 539 new-instance p1, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v0, Lcom/alibaba/fastjson/JSONPath$NotNullSegement; invoke-direct {v0, v5}, Lcom/alibaba/fastjson/JSONPath$NotNullSegement;->(Ljava/lang/String;)V invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object p1 .line 541 :cond_2f new-instance p1, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v0, Lcom/alibaba/fastjson/JSONPath$NullSegement; invoke-direct {v0, v5}, Lcom/alibaba/fastjson/JSONPath$NullSegement;->(Ljava/lang/String;)V invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object p1 :cond_30 if-eqz v0, :cond_34 .line 546 invoke-interface {v2}, Ljava/util/List;->size()I move-result p1 if-ne p1, v4, :cond_32 .line 547 invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object p1 check-cast p1, Ljava/lang/Number; invoke-virtual {p1}, Ljava/lang/Number;->longValue()J move-result-wide v0 if-eqz v8, :cond_31 .line 548 sget-object p1, Lcom/alibaba/fastjson/JSONPath$Operator;->NE:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_f :cond_31 sget-object p1, Lcom/alibaba/fastjson/JSONPath$Operator;->EQ:Lcom/alibaba/fastjson/JSONPath$Operator; .line 549 :goto_f new-instance v2, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v3, Lcom/alibaba/fastjson/JSONPath$IntOpSegement; invoke-direct {v3, v5, v0, v1, p1}, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->(Ljava/lang/String;JLcom/alibaba/fastjson/JSONPath$Operator;)V invoke-direct {v2, v3}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object v2 .line 552 :cond_32 invoke-interface {v2}, Ljava/util/List;->size()I move-result p1 new-array p1, p1, [J .line 553 :goto_10 array-length v0, p1 if-ge v3, v0, :cond_33 .line 554 invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/Number; invoke-virtual {v0}, Ljava/lang/Number;->longValue()J move-result-wide v0 aput-wide v0, p1, v3 add-int/lit8 v3, v3, 0x1 goto :goto_10 .line 557 :cond_33 new-instance v0, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v1, Lcom/alibaba/fastjson/JSONPath$IntInSegement; invoke-direct {v1, v5, p1, v8}, Lcom/alibaba/fastjson/JSONPath$IntInSegement;->(Ljava/lang/String;[JZ)V invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object v0 :cond_34 if-eqz v1, :cond_37 .line 561 invoke-interface {v2}, Ljava/util/List;->size()I move-result p1 if-ne p1, v4, :cond_36 .line 562 invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object p1 check-cast p1, Ljava/lang/String; if-eqz v8, :cond_35 .line 564 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->NE:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_11 :cond_35 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->EQ:Lcom/alibaba/fastjson/JSONPath$Operator; .line 565 :goto_11 new-instance v1, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v2, Lcom/alibaba/fastjson/JSONPath$StringOpSegement; invoke-direct {v2, v5, p1, v0}, Lcom/alibaba/fastjson/JSONPath$StringOpSegement;->(Ljava/lang/String;Ljava/lang/String;Lcom/alibaba/fastjson/JSONPath$Operator;)V invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object v1 .line 568 :cond_36 invoke-interface {v2}, Ljava/util/List;->size()I move-result p1 new-array p1, p1, [Ljava/lang/String; .line 569 invoke-interface {v2, p1}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; .line 571 new-instance v0, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v1, Lcom/alibaba/fastjson/JSONPath$StringInSegement; invoke-direct {v1, v5, p1, v8}, Lcom/alibaba/fastjson/JSONPath$StringInSegement;->(Ljava/lang/String;[Ljava/lang/String;Z)V invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object v0 :cond_37 if-eqz v6, :cond_3a .line 575 invoke-interface {v2}, Ljava/util/List;->size()I move-result p1 new-array p1, p1, [Ljava/lang/Long; .line 576 :goto_12 array-length v0, p1 if-ge v3, v0, :cond_39 .line 577 invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/Number; if-eqz v0, :cond_38 .line 579 invoke-virtual {v0}, Ljava/lang/Number;->longValue()J move-result-wide v0 invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v0 aput-object v0, p1, v3 :cond_38 add-int/lit8 v3, v3, 0x1 goto :goto_12 .line 583 :cond_39 new-instance v0, Lcom/alibaba/fastjson/JSONPath$FilterSegement; new-instance v1, Lcom/alibaba/fastjson/JSONPath$IntObjInSegement; invoke-direct {v1, v5, p1, v8}, Lcom/alibaba/fastjson/JSONPath$IntObjInSegement;->(Ljava/lang/String;[Ljava/lang/Long;Z)V invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object v0 .line 586 :cond_3a new-instance p1, Ljava/lang/UnsupportedOperationException; invoke-direct {p1}, Ljava/lang/UnsupportedOperationException;->()V throw p1 .line 498 :cond_3b invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 500 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readValue()Ljava/lang/Object; move-result-object v7 .line 501 invoke-interface {v2, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z goto/16 :goto_d .line 459 :cond_3c :goto_13 sget-object p1, Lcom/alibaba/fastjson/JSONPath$Operator;->NOT_BETWEEN:Lcom/alibaba/fastjson/JSONPath$Operator; if-ne v7, p1, :cond_3d const/4 v8, 0x1 goto :goto_14 :cond_3d const/4 v8, 0x0 .line 461 :goto_14 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readValue()Ljava/lang/Object; move-result-object p1 .line 463 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readName()Ljava/lang/String; move-result-object v0 const-string v1, "and" .line 465 invoke-virtual {v1, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_40 .line 469 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readValue()Ljava/lang/Object; move-result-object v0 if-eqz p1, :cond_3f if-eqz v0, :cond_3f .line 475 invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v1 invoke-static {v1}, Lcom/alibaba/fastjson/JSONPath;->isInt(Ljava/lang/Class;)Z move-result v1 if-eqz v1, :cond_3e invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v1 invoke-static {v1}, Lcom/alibaba/fastjson/JSONPath;->isInt(Ljava/lang/Class;)Z move-result v1 if-eqz v1, :cond_3e .line 476 new-instance v1, Lcom/alibaba/fastjson/JSONPath$IntBetweenSegement; check-cast p1, Ljava/lang/Number; invoke-virtual {p1}, Ljava/lang/Number;->longValue()J move-result-wide v6 check-cast v0, Ljava/lang/Number; .line 477 invoke-virtual {v0}, Ljava/lang/Number;->longValue()J move-result-wide v9 move-object v2, v1 move-object v3, v5 move-wide v4, v6 move-wide v6, v9 invoke-direct/range {v2 .. v8}, Lcom/alibaba/fastjson/JSONPath$IntBetweenSegement;->(Ljava/lang/String;JJZ)V .line 478 new-instance p1, Lcom/alibaba/fastjson/JSONPath$FilterSegement; invoke-direct {p1, v1}, Lcom/alibaba/fastjson/JSONPath$FilterSegement;->(Lcom/alibaba/fastjson/JSONPath$Filter;)V return-object p1 .line 481 :cond_3e new-instance p1, Lcom/alibaba/fastjson/JSONPathException; iget-object v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->path:Ljava/lang/String; invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONPathException;->(Ljava/lang/String;)V throw p1 .line 472 :cond_3f new-instance p1, Lcom/alibaba/fastjson/JSONPathException; iget-object v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->path:Ljava/lang/String; invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONPathException;->(Ljava/lang/String;)V throw p1 .line 466 :cond_40 new-instance p1, Lcom/alibaba/fastjson/JSONPathException; iget-object v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->path:Ljava/lang/String; invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONPathException;->(Ljava/lang/String;)V throw p1 .end method .method protected readLongValue()J .locals 3 .line 729 iget v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->pos:I add-int/lit8 v0, v0, -0x1 .line 730 iget-char v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x2b if-eq v1, v2, :cond_0 iget-char v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x2d if-ne v1, v2, :cond_1 .line 731 :cond_0 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 734 :cond_1 :goto_0 iget-char v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x30 if-lt v1, v2, :cond_2 iget-char v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x39 if-gt v1, v2, :cond_2 .line 735 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V goto :goto_0 .line 738 :cond_2 iget v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->pos:I add-int/lit8 v1, v1, -0x1 .line 739 iget-object v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->path:Ljava/lang/String; invoke-virtual {v2, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v0 .line 740 invoke-static {v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J move-result-wide v0 return-wide v0 .end method .method readName()Ljava/lang/String; .locals 3 .line 836 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->skipWhitespace()V .line 838 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v1, 0x5c if-eq v0, v1, :cond_1 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C invoke-static {v0}, Lcom/alibaba/fastjson/util/IOUtils;->firstIdentifier(C)Z move-result v0 if-eqz v0, :cond_0 goto :goto_0 .line 839 :cond_0 new-instance v0, Lcom/alibaba/fastjson/JSONPathException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v2, "illeal jsonpath syntax. " invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget-object v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->path:Ljava/lang/String; 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 v1 invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONPathException;->(Ljava/lang/String;)V throw v0 .line 842 :cond_1 :goto_0 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V .line 843 :goto_1 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->isEOF()Z move-result v2 if-nez v2, :cond_5 .line 844 iget-char v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C if-ne v2, v1, :cond_3 .line 845 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 846 iget-char v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; .line 847 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->isEOF()Z move-result v2 if-eqz v2, :cond_2 goto :goto_2 .line 850 :cond_2 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V goto :goto_1 .line 854 :cond_3 iget-char v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C invoke-static {v2}, Lcom/alibaba/fastjson/util/IOUtils;->isIdent(C)Z move-result v2 if-nez v2, :cond_4 goto :goto_2 .line 858 :cond_4 iget-char v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; .line 859 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V goto :goto_1 .line 862 :cond_5 :goto_2 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->isEOF()Z move-result v1 if-eqz v1, :cond_6 iget-char v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C invoke-static {v1}, Lcom/alibaba/fastjson/util/IOUtils;->isIdent(C)Z move-result v1 if-eqz v1, :cond_6 .line 863 iget-char v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; .line 866 :cond_6 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 return-object v0 .end method .method protected readOp()Lcom/alibaba/fastjson/JSONPath$Operator; .locals 3 .line 774 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v1, 0x3d if-ne v0, v1, :cond_0 .line 775 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 776 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->EQ:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_0 .line 777 :cond_0 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x21 if-ne v0, v2, :cond_1 .line 778 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 779 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V .line 780 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->NE:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_0 .line 781 :cond_1 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x3c if-ne v0, v2, :cond_3 .line 782 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 783 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C if-ne v0, v1, :cond_2 .line 784 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 785 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->LE:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_0 .line 787 :cond_2 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->LT:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_0 .line 789 :cond_3 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x3e if-ne v0, v2, :cond_5 .line 790 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 791 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C if-ne v0, v1, :cond_4 .line 792 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 793 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->GE:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_0 .line 795 :cond_4 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->GT:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_0 :cond_5 const/4 v0, 0x0 :goto_0 if-nez v0, :cond_f .line 800 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readName()Ljava/lang/String; move-result-object v0 const-string v1, "not" .line 802 invoke-virtual {v1, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result v1 if-eqz v1, :cond_a .line 803 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->skipWhitespace()V .line 805 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readName()Ljava/lang/String; move-result-object v0 const-string v1, "like" .line 807 invoke-virtual {v1, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result v1 if-eqz v1, :cond_6 .line 808 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->NOT_LIKE:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_1 :cond_6 const-string v1, "rlike" .line 809 invoke-virtual {v1, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result v1 if-eqz v1, :cond_7 .line 810 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->NOT_RLIKE:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_1 :cond_7 const-string v1, "in" .line 811 invoke-virtual {v1, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result v1 if-eqz v1, :cond_8 .line 812 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->NOT_IN:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_1 :cond_8 const-string v1, "between" .line 813 invoke-virtual {v1, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_9 .line 814 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->NOT_BETWEEN:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_1 .line 816 :cond_9 new-instance v0, Ljava/lang/UnsupportedOperationException; invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;->()V throw v0 :cond_a const-string v1, "like" .line 819 invoke-virtual {v1, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result v1 if-eqz v1, :cond_b .line 820 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->LIKE:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_1 :cond_b const-string v1, "rlike" .line 821 invoke-virtual {v1, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result v1 if-eqz v1, :cond_c .line 822 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->RLIKE:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_1 :cond_c const-string v1, "in" .line 823 invoke-virtual {v1, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result v1 if-eqz v1, :cond_d .line 824 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->IN:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_1 :cond_d const-string v1, "between" .line 825 invoke-virtual {v1, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_e .line 826 sget-object v0, Lcom/alibaba/fastjson/JSONPath$Operator;->BETWEEN:Lcom/alibaba/fastjson/JSONPath$Operator; goto :goto_1 .line 828 :cond_e new-instance v0, Ljava/lang/UnsupportedOperationException; invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;->()V throw v0 :cond_f :goto_1 return-object v0 .end method .method readSegement()Lcom/alibaba/fastjson/JSONPath$Segement; .locals 3 .line 334 iget v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->level:I const/4 v1, 0x1 if-nez v0, :cond_3 iget-object v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->path:Ljava/lang/String; invoke-virtual {v0}, Ljava/lang/String;->length()I move-result v0 if-ne v0, v1, :cond_3 .line 335 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C invoke-static {v0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->isDigitFirst(C)Z move-result v0 if-eqz v0, :cond_0 .line 336 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C add-int/lit8 v0, v0, -0x30 .line 337 new-instance v1, Lcom/alibaba/fastjson/JSONPath$ArrayAccessSegement; invoke-direct {v1, v0}, Lcom/alibaba/fastjson/JSONPath$ArrayAccessSegement;->(I)V return-object v1 .line 338 :cond_0 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x61 if-lt v0, v2, :cond_1 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x7a if-le v0, v2, :cond_2 :cond_1 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x41 if-lt v0, v2, :cond_3 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x5a if-gt v0, v2, :cond_3 .line 339 :cond_2 new-instance v0, Lcom/alibaba/fastjson/JSONPath$PropertySegement; iget-char v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C invoke-static {v1}, Ljava/lang/Character;->toString(C)Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONPath$PropertySegement;->(Ljava/lang/String;)V return-object v0 .line 342 :cond_3 :goto_0 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->isEOF()Z move-result v0 if-nez v0, :cond_11 .line 343 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->skipWhitespace()V .line 345 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x40 if-ne v0, v2, :cond_4 .line 346 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 347 sget-object v0, Lcom/alibaba/fastjson/JSONPath$SelfSegement;->instance:Lcom/alibaba/fastjson/JSONPath$SelfSegement; return-object v0 .line 350 :cond_4 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x24 if-ne v0, v2, :cond_5 .line 351 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V goto :goto_0 .line 355 :cond_5 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x2e if-eq v0, v2, :cond_9 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x2f if-ne v0, v2, :cond_6 goto :goto_1 .line 390 :cond_6 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x5b if-ne v0, v2, :cond_7 .line 391 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->parseArrayAccess(Z)Lcom/alibaba/fastjson/JSONPath$Segement; move-result-object v0 return-object v0 .line 394 :cond_7 iget v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->level:I if-nez v0, :cond_8 .line 395 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readName()Ljava/lang/String; move-result-object v0 .line 397 new-instance v1, Lcom/alibaba/fastjson/JSONPath$PropertySegement; invoke-direct {v1, v0}, Lcom/alibaba/fastjson/JSONPath$PropertySegement;->(Ljava/lang/String;)V return-object v1 .line 400 :cond_8 new-instance v0, Ljava/lang/UnsupportedOperationException; invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;->()V throw v0 .line 356 :cond_9 :goto_1 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 357 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v1, 0x2a if-ne v0, v1, :cond_b .line 358 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->isEOF()Z move-result v0 if-nez v0, :cond_a .line 359 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 362 :cond_a sget-object v0, Lcom/alibaba/fastjson/JSONPath$WildCardSegement;->instance:Lcom/alibaba/fastjson/JSONPath$WildCardSegement; return-object v0 .line 365 :cond_b iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C invoke-static {v0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->isDigitFirst(C)Z move-result v0 if-eqz v0, :cond_c const/4 v0, 0x0 .line 366 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->parseArrayAccess(Z)Lcom/alibaba/fastjson/JSONPath$Segement; move-result-object v0 return-object v0 .line 369 :cond_c invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readName()Ljava/lang/String; move-result-object v0 .line 370 iget-char v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x28 if-ne v1, v2, :cond_10 .line 371 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 372 iget-char v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v2, 0x29 if-ne v1, v2, :cond_f .line 373 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->isEOF()Z move-result v1 if-nez v1, :cond_d .line 374 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V :cond_d const-string v1, "size" .line 377 invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_e .line 378 sget-object v0, Lcom/alibaba/fastjson/JSONPath$SizeSegement;->instance:Lcom/alibaba/fastjson/JSONPath$SizeSegement; return-object v0 .line 381 :cond_e new-instance v0, Ljava/lang/UnsupportedOperationException; invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;->()V throw v0 .line 384 :cond_f new-instance v0, Ljava/lang/UnsupportedOperationException; invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;->()V throw v0 .line 387 :cond_10 new-instance v1, Lcom/alibaba/fastjson/JSONPath$PropertySegement; invoke-direct {v1, v0}, Lcom/alibaba/fastjson/JSONPath$PropertySegement;->(Ljava/lang/String;)V return-object v1 :cond_11 const/4 v0, 0x0 return-object v0 .end method .method readString()Ljava/lang/String; .locals 4 .line 872 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C .line 873 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V .line 875 iget v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->pos:I add-int/lit8 v1, v1, -0x1 .line 876 :goto_0 iget-char v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C if-eq v2, v0, :cond_0 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->isEOF()Z move-result v2 if-nez v2, :cond_0 .line 877 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V goto :goto_0 .line 880 :cond_0 iget-object v2, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->path:Ljava/lang/String; invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->isEOF()Z move-result v3 if-eqz v3, :cond_1 iget v3, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->pos:I goto :goto_1 :cond_1 iget v3, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->pos:I add-int/lit8 v3, v3, -0x1 :goto_1 invoke-virtual {v2, v1, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v1 .line 882 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->accept(C)V return-object v1 .end method .method protected readValue()Ljava/lang/Object; .locals 2 .line 745 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->skipWhitespace()V .line 747 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C invoke-static {v0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->isDigitFirst(C)Z move-result v0 if-eqz v0, :cond_0 .line 748 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readLongValue()J move-result-wide v0 invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v0 return-object v0 .line 751 :cond_0 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v1, 0x22 if-eq v0, v1, :cond_4 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v1, 0x27 if-ne v0, v1, :cond_1 goto :goto_0 .line 755 :cond_1 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v1, 0x6e if-ne v0, v1, :cond_3 .line 756 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readName()Ljava/lang/String; move-result-object v0 const-string v1, "null" .line 758 invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_2 const/4 v0, 0x0 return-object v0 .line 761 :cond_2 new-instance v0, Lcom/alibaba/fastjson/JSONPathException; iget-object v1, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->path:Ljava/lang/String; invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONPathException;->(Ljava/lang/String;)V throw v0 .line 765 :cond_3 new-instance v0, Ljava/lang/UnsupportedOperationException; invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;->()V throw v0 .line 752 :cond_4 :goto_0 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->readString()Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public final skipWhitespace()V .locals 2 .line 408 :goto_0 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v1, 0x20 if-gt v0, v1, :cond_1 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C if-eq v0, v1, :cond_0 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v1, 0xd if-eq v0, v1, :cond_0 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v1, 0xa if-eq v0, v1, :cond_0 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v1, 0x9 if-eq v0, v1, :cond_0 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v1, 0xc if-eq v0, v1, :cond_0 iget-char v0, p0, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->ch:C const/16 v1, 0x8 if-ne v0, v1, :cond_1 .line 409 :cond_0 invoke-virtual {p0}, Lcom/alibaba/fastjson/JSONPath$JSONPathParser;->next()V goto :goto_0 :cond_1 return-void .end method