JSONPath$IntOpSegement.smali
.class Lcom/alibaba/fastjson/JSONPath$IntOpSegement;
.super Lcom/alibaba/fastjson/JSONPath$PropertyFilter;
.source "JSONPath.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/alibaba/fastjson/JSONPath;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = "IntOpSegement"
.end annotation
# instance fields
.field private final op:Lcom/alibaba/fastjson/JSONPath$Operator;
.field private final value:J
.field private valueDecimal:Ljava/math/BigDecimal;
.field private valueDouble:Ljava/lang/Double;
.field private valueFloat:Ljava/lang/Float;
# direct methods
.method public constructor <init>(Ljava/lang/String;ZJLcom/alibaba/fastjson/JSONPath$Operator;)V
.registers 6
.line 3012
invoke-direct {p0, p1, p2}, Lcom/alibaba/fastjson/JSONPath$PropertyFilter;-><init>(Ljava/lang/String;Z)V
.line 3013
iput-wide p3, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->value:J
.line 3014
iput-object p5, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->op:Lcom/alibaba/fastjson/JSONPath$Operator;
return-void
.end method
# virtual methods
.method public apply(Lcom/alibaba/fastjson/JSONPath;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
.registers 9
.line 3018
invoke-virtual {p0, p1, p2, p4}, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->get(Lcom/alibaba/fastjson/JSONPath;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
const/4 p2, 0x0
if-nez p1, :cond_8
return p2
.line 3024
:cond_8
instance-of p3, p1, Ljava/lang/Number;
if-nez p3, :cond_d
return p2
.line 3028
:cond_d
instance-of p3, p1, Ljava/math/BigDecimal;
const/4 p4, 0x1
if-eqz p3, :cond_4c
.line 3029
iget-object p3, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->valueDecimal:Ljava/math/BigDecimal;
if-nez p3, :cond_1e
.line 3030
iget-wide v0, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->value:J
invoke-static {v0, v1}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal;
move-result-object p3
iput-object p3, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->valueDecimal:Ljava/math/BigDecimal;
.line 3033
:cond_1e
iget-object p3, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->valueDecimal:Ljava/math/BigDecimal;
check-cast p1, Ljava/math/BigDecimal;
invoke-virtual {p3, p1}, Ljava/math/BigDecimal;->compareTo(Ljava/math/BigDecimal;)I
move-result p1
.line 3034
sget-object p3, Lcom/alibaba/fastjson/JSONPath$1;->$SwitchMap$com$alibaba$fastjson$JSONPath$Operator:[I
iget-object v0, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->op:Lcom/alibaba/fastjson/JSONPath$Operator;
invoke-virtual {v0}, Lcom/alibaba/fastjson/JSONPath$Operator;->ordinal()I
move-result v0
aget p3, p3, v0
packed-switch p3, :pswitch_data_10e
return p2
:pswitch_34
if-lez p1, :cond_37
move p2, p4
:cond_37
return p2
:pswitch_38
if-ltz p1, :cond_3b
move p2, p4
:cond_3b
return p2
:pswitch_3c
if-gez p1, :cond_3f
move p2, p4
:cond_3f
return p2
:pswitch_40
if-gtz p1, :cond_43
move p2, p4
:cond_43
return p2
:pswitch_44
if-eqz p1, :cond_47
move p2, p4
:cond_47
return p2
:pswitch_48
if-nez p1, :cond_4b
move p2, p4
:cond_4b
return p2
.line 3052
:cond_4c
instance-of p3, p1, Ljava/lang/Float;
if-eqz p3, :cond_8b
.line 3053
iget-object p3, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->valueFloat:Ljava/lang/Float;
if-nez p3, :cond_5d
.line 3054
iget-wide v0, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->value:J
long-to-float p3, v0
invoke-static {p3}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object p3
iput-object p3, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->valueFloat:Ljava/lang/Float;
.line 3057
:cond_5d
iget-object p3, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->valueFloat:Ljava/lang/Float;
check-cast p1, Ljava/lang/Float;
invoke-virtual {p3, p1}, Ljava/lang/Float;->compareTo(Ljava/lang/Float;)I
move-result p1
.line 3058
sget-object p3, Lcom/alibaba/fastjson/JSONPath$1;->$SwitchMap$com$alibaba$fastjson$JSONPath$Operator:[I
iget-object v0, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->op:Lcom/alibaba/fastjson/JSONPath$Operator;
invoke-virtual {v0}, Lcom/alibaba/fastjson/JSONPath$Operator;->ordinal()I
move-result v0
aget p3, p3, v0
packed-switch p3, :pswitch_data_11e
return p2
:pswitch_73
if-lez p1, :cond_76
move p2, p4
:cond_76
return p2
:pswitch_77
if-ltz p1, :cond_7a
move p2, p4
:cond_7a
return p2
:pswitch_7b
if-gez p1, :cond_7e
move p2, p4
:cond_7e
return p2
:pswitch_7f
if-gtz p1, :cond_82
move p2, p4
:cond_82
return p2
:pswitch_83
if-eqz p1, :cond_86
move p2, p4
:cond_86
return p2
:pswitch_87
if-nez p1, :cond_8a
move p2, p4
:cond_8a
return p2
.line 3076
:cond_8b
instance-of p3, p1, Ljava/lang/Double;
if-eqz p3, :cond_ca
.line 3077
iget-object p3, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->valueDouble:Ljava/lang/Double;
if-nez p3, :cond_9c
.line 3078
iget-wide v0, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->value:J
long-to-double v0, v0
invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object p3
iput-object p3, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->valueDouble:Ljava/lang/Double;
.line 3081
:cond_9c
iget-object p3, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->valueDouble:Ljava/lang/Double;
check-cast p1, Ljava/lang/Double;
invoke-virtual {p3, p1}, Ljava/lang/Double;->compareTo(Ljava/lang/Double;)I
move-result p1
.line 3082
sget-object p3, Lcom/alibaba/fastjson/JSONPath$1;->$SwitchMap$com$alibaba$fastjson$JSONPath$Operator:[I
iget-object v0, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->op:Lcom/alibaba/fastjson/JSONPath$Operator;
invoke-virtual {v0}, Lcom/alibaba/fastjson/JSONPath$Operator;->ordinal()I
move-result v0
aget p3, p3, v0
packed-switch p3, :pswitch_data_12e
return p2
:pswitch_b2
if-lez p1, :cond_b5
move p2, p4
:cond_b5
return p2
:pswitch_b6
if-ltz p1, :cond_b9
move p2, p4
:cond_b9
return p2
:pswitch_ba
if-gez p1, :cond_bd
move p2, p4
:cond_bd
return p2
:pswitch_be
if-gtz p1, :cond_c1
move p2, p4
:cond_c1
return p2
:pswitch_c2
if-eqz p1, :cond_c5
move p2, p4
:cond_c5
return p2
:pswitch_c6
if-nez p1, :cond_c9
move p2, p4
:cond_c9
return p2
.line 3100
:cond_ca
check-cast p1, Ljava/lang/Number;
invoke-static {p1}, Lcom/alibaba/fastjson/util/TypeUtils;->longExtractValue(Ljava/lang/Number;)J
move-result-wide v0
.line 3102
sget-object p1, Lcom/alibaba/fastjson/JSONPath$1;->$SwitchMap$com$alibaba$fastjson$JSONPath$Operator:[I
iget-object p3, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->op:Lcom/alibaba/fastjson/JSONPath$Operator;
invoke-virtual {p3}, Lcom/alibaba/fastjson/JSONPath$Operator;->ordinal()I
move-result p3
aget p1, p1, p3
packed-switch p1, :pswitch_data_13e
return p2
.line 3114
:pswitch_de
iget-wide v2, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->value:J
cmp-long p1, v0, v2
if-gez p1, :cond_e5
move p2, p4
:cond_e5
return p2
.line 3112
:pswitch_e6
iget-wide v2, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->value:J
cmp-long p1, v0, v2
if-gtz p1, :cond_ed
move p2, p4
:cond_ed
return p2
.line 3110
:pswitch_ee
iget-wide v2, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->value:J
cmp-long p1, v0, v2
if-lez p1, :cond_f5
move p2, p4
:cond_f5
return p2
.line 3108
:pswitch_f6
iget-wide v2, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->value:J
cmp-long p1, v0, v2
if-ltz p1, :cond_fd
move p2, p4
:cond_fd
return p2
.line 3106
:pswitch_fe
iget-wide v2, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->value:J
cmp-long p1, v0, v2
if-eqz p1, :cond_105
move p2, p4
:cond_105
return p2
.line 3104
:pswitch_106
iget-wide v2, p0, Lcom/alibaba/fastjson/JSONPath$IntOpSegement;->value:J
cmp-long p1, v0, v2
if-nez p1, :cond_10d
move p2, p4
:cond_10d
return p2
:pswitch_data_10e
.packed-switch 0x1
:pswitch_48
:pswitch_44
:pswitch_40
:pswitch_3c
:pswitch_38
:pswitch_34
.end packed-switch
:pswitch_data_11e
.packed-switch 0x1
:pswitch_87
:pswitch_83
:pswitch_7f
:pswitch_7b
:pswitch_77
:pswitch_73
.end packed-switch
:pswitch_data_12e
.packed-switch 0x1
:pswitch_c6
:pswitch_c2
:pswitch_be
:pswitch_ba
:pswitch_b6
:pswitch_b2
.end packed-switch
:pswitch_data_13e
.packed-switch 0x1
:pswitch_106
:pswitch_fe
:pswitch_f6
:pswitch_ee
:pswitch_e6
:pswitch_de
.end packed-switch
.end method