JSONPath$FloorSegment.smali
.class Lcom/alibaba/fastjson/JSONPath$FloorSegment;
.super Ljava/lang/Object;
.source "JSONPath.java"
# interfaces
.implements Lcom/alibaba/fastjson/JSONPath$Segment;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/alibaba/fastjson/JSONPath;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = "FloorSegment"
.end annotation
# static fields
.field public static final instance:Lcom/alibaba/fastjson/JSONPath$FloorSegment;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 2149
new-instance v0, Lcom/alibaba/fastjson/JSONPath$FloorSegment;
invoke-direct {v0}, Lcom/alibaba/fastjson/JSONPath$FloorSegment;-><init>()V
sput-object v0, Lcom/alibaba/fastjson/JSONPath$FloorSegment;->instance:Lcom/alibaba/fastjson/JSONPath$FloorSegment;
return-void
.end method
.method constructor <init>()V
.registers 1
.line 2148
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static floor(Ljava/lang/Object;)Ljava/lang/Object;
.registers 3
if-nez p0, :cond_4
const/4 p0, 0x0
return-object p0
.line 2171
:cond_4
instance-of v0, p0, Ljava/lang/Float;
if-eqz v0, :cond_18
.line 2172
check-cast p0, Ljava/lang/Float;
invoke-virtual {p0}, Ljava/lang/Float;->floatValue()F
move-result p0
float-to-double v0, p0
invoke-static {v0, v1}, Ljava/lang/Math;->floor(D)D
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object p0
return-object p0
.line 2175
:cond_18
instance-of v0, p0, Ljava/lang/Double;
if-eqz v0, :cond_2b
.line 2176
check-cast p0, Ljava/lang/Double;
invoke-virtual {p0}, Ljava/lang/Double;->doubleValue()D
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Math;->floor(D)D
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object p0
return-object p0
.line 2179
:cond_2b
instance-of v0, p0, Ljava/math/BigDecimal;
if-eqz v0, :cond_39
.line 2180
check-cast p0, Ljava/math/BigDecimal;
const/4 v0, 0x0
.line 2181
sget-object v1, Ljava/math/RoundingMode;->FLOOR:Ljava/math/RoundingMode;
invoke-virtual {p0, v0, v1}, Ljava/math/BigDecimal;->setScale(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
move-result-object p0
return-object p0
.line 2184
:cond_39
instance-of v0, p0, Ljava/lang/Byte;
if-nez v0, :cond_54
instance-of v0, p0, Ljava/lang/Short;
if-nez v0, :cond_54
instance-of v0, p0, Ljava/lang/Integer;
if-nez v0, :cond_54
instance-of v0, p0, Ljava/lang/Long;
if-nez v0, :cond_54
instance-of v0, p0, Ljava/math/BigInteger;
if-eqz v0, :cond_4e
goto :goto_54
.line 2192
:cond_4e
new-instance p0, Ljava/lang/UnsupportedOperationException;
invoke-direct {p0}, Ljava/lang/UnsupportedOperationException;-><init>()V
throw p0
:cond_54
:goto_54
return-object p0
.end method
# virtual methods
.method public eval(Lcom/alibaba/fastjson/JSONPath;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.registers 5
.line 2151
instance-of p1, p3, Lcom/alibaba/fastjson/JSONArray;
if-eqz p1, :cond_24
.line 2152
check-cast p3, Lcom/alibaba/fastjson/JSONArray;
invoke-virtual {p3}, Lcom/alibaba/fastjson/JSONArray;->clone()Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/alibaba/fastjson/JSONArray;
const/4 p2, 0x0
.line 2153
:goto_d
invoke-virtual {p1}, Lcom/alibaba/fastjson/JSONArray;->size()I
move-result p3
if-ge p2, p3, :cond_23
.line 2154
invoke-virtual {p1, p2}, Lcom/alibaba/fastjson/JSONArray;->get(I)Ljava/lang/Object;
move-result-object p3
.line 2155
invoke-static {p3}, Lcom/alibaba/fastjson/JSONPath$FloorSegment;->floor(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
if-eq v0, p3, :cond_20
.line 2157
invoke-virtual {p1, p2, v0}, Lcom/alibaba/fastjson/JSONArray;->set(ILjava/lang/Object;)Ljava/lang/Object;
:cond_20
add-int/lit8 p2, p2, 0x1
goto :goto_d
:cond_23
return-object p1
.line 2163
:cond_24
invoke-static {p3}, Lcom/alibaba/fastjson/JSONPath$FloorSegment;->floor(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public extract(Lcom/alibaba/fastjson/JSONPath;Lcom/alibaba/fastjson/parser/DefaultJSONParser;Lcom/alibaba/fastjson/JSONPath$Context;)V
.registers 4
.line 2196
new-instance p1, Ljava/lang/UnsupportedOperationException;
invoke-direct {p1}, Ljava/lang/UnsupportedOperationException;-><init>()V
throw p1
.end method