FieldUtils.smali
.class public Lorg/joda/time/field/FieldUtils;
.super Ljava/lang/Object;
.source "FieldUtils.java"
# direct methods
.method private constructor <init>()V
.registers 1
.line 39
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static equals(Ljava/lang/Object;Ljava/lang/Object;)Z
.registers 2
if-ne p0, p1, :cond_4
const/4 p0, 0x1
return p0
:cond_4
if-eqz p0, :cond_e
if-nez p1, :cond_9
goto :goto_e
.line 366
:cond_9
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
return p0
:cond_e
:goto_e
const/4 p0, 0x0
return p0
.end method
.method public static getWrappedValue(III)I
.registers 3
if-ge p1, p2, :cond_15
sub-int/2addr p2, p1
add-int/lit8 p2, p2, 0x1
sub-int/2addr p0, p1
if-ltz p0, :cond_b
.line 339
rem-int/2addr p0, p2
add-int/2addr p0, p1
return p0
:cond_b
neg-int p0, p0
.line 342
rem-int/2addr p0, p2
if-nez p0, :cond_12
add-int/lit8 p1, p1, 0x0
return p1
:cond_12
sub-int/2addr p2, p0
add-int/2addr p2, p1
return p2
.line 332
:cond_15
new-instance p0, Ljava/lang/IllegalArgumentException;
const-string p1, "MIN > MAX"
invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p0
.end method
.method public static getWrappedValue(IIII)I
.registers 4
add-int/2addr p0, p1
.line 315
invoke-static {p0, p2, p3}, Lorg/joda/time/field/FieldUtils;->getWrappedValue(III)I
move-result p0
return p0
.end method
.method public static safeAdd(II)I
.registers 5
add-int v0, p0, p1
xor-int v1, p0, v0
if-gez v1, :cond_2a
xor-int v1, p0, p1
if-gez v1, :cond_b
goto :goto_2a
.line 70
:cond_b
new-instance v0, Ljava/lang/ArithmeticException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "The calculation caused an overflow: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p0, " + "
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/ArithmeticException;-><init>(Ljava/lang/String;)V
throw v0
:cond_2a
:goto_2a
return v0
.end method
.method public static safeAdd(JJ)J
.registers 11
add-long v0, p0, p2
xor-long v2, p0, v0
const-wide/16 v4, 0x0
cmp-long v6, v2, v4
if-gez v6, :cond_30
xor-long v2, p0, p2
cmp-long v6, v2, v4
if-gez v6, :cond_11
goto :goto_30
.line 88
:cond_11
new-instance v0, Ljava/lang/ArithmeticException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "The calculation caused an overflow: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0, p1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string p0, " + "
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/ArithmeticException;-><init>(Ljava/lang/String;)V
throw v0
:cond_30
:goto_30
return-wide v0
.end method
.method public static safeDivide(JJ)J
.registers 7
const-wide/high16 v0, -0x8000000000000000L
cmp-long v2, p0, v0
if-nez v2, :cond_2c
const-wide/16 v0, -0x1
cmp-long v2, p2, v0
if-eqz v2, :cond_d
goto :goto_2c
.line 193
:cond_d
new-instance v0, Ljava/lang/ArithmeticException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Multiplication overflows a long: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0, p1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string p0, " / "
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/ArithmeticException;-><init>(Ljava/lang/String;)V
throw v0
.line 195
:cond_2c
:goto_2c
div-long/2addr p0, p2
return-wide p0
.end method
.method public static safeDivide(JJLjava/math/RoundingMode;)J
.registers 8
const-wide/high16 v0, -0x8000000000000000L
cmp-long v2, p0, v0
if-nez v2, :cond_2c
const-wide/16 v0, -0x1
cmp-long v2, p2, v0
if-eqz v2, :cond_d
goto :goto_2c
.line 210
:cond_d
new-instance p4, Ljava/lang/ArithmeticException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Multiplication overflows a long: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p0, p1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string p0, " / "
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {p4, p0}, Ljava/lang/ArithmeticException;-><init>(Ljava/lang/String;)V
throw p4
.line 213
:cond_2c
:goto_2c
new-instance v0, Ljava/math/BigDecimal;
invoke-direct {v0, p0, p1}, Ljava/math/BigDecimal;-><init>(J)V
.line 214
new-instance p0, Ljava/math/BigDecimal;
invoke-direct {p0, p2, p3}, Ljava/math/BigDecimal;-><init>(J)V
.line 215
invoke-virtual {v0, p0, p4}, Ljava/math/BigDecimal;->divide(Ljava/math/BigDecimal;Ljava/math/RoundingMode;)Ljava/math/BigDecimal;
move-result-object p0
invoke-virtual {p0}, Ljava/math/BigDecimal;->longValue()J
move-result-wide p0
return-wide p0
.end method
.method public static safeMultiply(II)I
.registers 7
int-to-long v0, p0
int-to-long v2, p1
mul-long v0, v0, v2
const-wide/32 v2, -0x80000000
cmp-long v4, v0, v2
if-ltz v4, :cond_14
const-wide/32 v2, 0x7fffffff
cmp-long v4, v0, v2
if-gtz v4, :cond_14
long-to-int p0, v0
return p0
.line 124
:cond_14
new-instance v0, Ljava/lang/ArithmeticException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Multiplication overflows an int: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p0, " * "
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/ArithmeticException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static safeMultiply(JI)J
.registers 10
const/4 v0, -0x1
const-string v1, " * "
const-string v2, "Multiplication overflows a long: "
if-eq p2, v0, :cond_35
if-eqz p2, :cond_32
const/4 v0, 0x1
if-eq p2, v0, :cond_31
int-to-long v3, p2
mul-long v5, p0, v3
.line 151
div-long v3, v5, v3
cmp-long v0, v3, p0
if-nez v0, :cond_16
return-wide v5
.line 152
:cond_16
new-instance v0, Ljava/lang/ArithmeticException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p0, p1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/ArithmeticException;-><init>(Ljava/lang/String;)V
throw v0
:cond_31
return-wide p0
:cond_32
const-wide/16 p0, 0x0
return-wide p0
:cond_35
const-wide/high16 v3, -0x8000000000000000L
cmp-long v0, p0, v3
if-eqz v0, :cond_3d
neg-long p0, p0
return-wide p0
.line 142
:cond_3d
new-instance v0, Ljava/lang/ArithmeticException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p0, p1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/ArithmeticException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static safeMultiply(JJ)J
.registers 11
const-wide/16 v0, 0x1
cmp-long v2, p2, v0
if-nez v2, :cond_7
return-wide p0
:cond_7
cmp-long v2, p0, v0
if-nez v2, :cond_c
return-wide p2
:cond_c
const-wide/16 v0, 0x0
cmp-long v2, p0, v0
if-eqz v2, :cond_53
cmp-long v2, p2, v0
if-nez v2, :cond_17
goto :goto_53
:cond_17
mul-long v0, p0, p2
.line 176
div-long v2, v0, p2
cmp-long v4, v2, p0
if-nez v4, :cond_34
const-wide/16 v2, -0x1
const-wide/high16 v4, -0x8000000000000000L
cmp-long v6, p0, v4
if-nez v6, :cond_2b
cmp-long v6, p2, v2
if-eqz v6, :cond_34
:cond_2b
cmp-long v6, p2, v4
if-nez v6, :cond_33
cmp-long v4, p0, v2
if-eqz v4, :cond_34
:cond_33
return-wide v0
.line 177
:cond_34
new-instance v0, Ljava/lang/ArithmeticException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Multiplication overflows a long: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0, p1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string p0, " * "
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/ArithmeticException;-><init>(Ljava/lang/String;)V
throw v0
:cond_53
:goto_53
return-wide v0
.end method
.method public static safeMultiplyToInt(JJ)I
.registers 4
.line 241
invoke-static {p0, p1, p2, p3}, Lorg/joda/time/field/FieldUtils;->safeMultiply(JJ)J
move-result-wide p0
.line 242
invoke-static {p0, p1}, Lorg/joda/time/field/FieldUtils;->safeToInt(J)I
move-result p0
return p0
.end method
.method public static safeNegate(I)I
.registers 2
const/high16 v0, -0x80000000
if-eq p0, v0, :cond_6
neg-int p0, p0
return p0
.line 53
:cond_6
new-instance p0, Ljava/lang/ArithmeticException;
const-string v0, "Integer.MIN_VALUE cannot be negated"
invoke-direct {p0, v0}, Ljava/lang/ArithmeticException;-><init>(Ljava/lang/String;)V
throw p0
.end method
.method public static safeSubtract(JJ)J
.registers 11
sub-long v0, p0, p2
xor-long v2, p0, v0
const-wide/16 v4, 0x0
cmp-long v6, v2, v4
if-gez v6, :cond_30
xor-long v2, p0, p2
cmp-long v6, v2, v4
if-ltz v6, :cond_11
goto :goto_30
.line 106
:cond_11
new-instance v0, Ljava/lang/ArithmeticException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "The calculation caused an overflow: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0, p1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string p0, " - "
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/ArithmeticException;-><init>(Ljava/lang/String;)V
throw v0
:cond_30
:goto_30
return-wide v0
.end method
.method public static safeToInt(J)I
.registers 5
const-wide/32 v0, -0x80000000
cmp-long v2, v0, p0
if-gtz v2, :cond_10
const-wide/32 v0, 0x7fffffff
cmp-long v2, p0, v0
if-gtz v2, :cond_10
long-to-int p1, p0
return p1
.line 229
:cond_10
new-instance v0, Ljava/lang/ArithmeticException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Value cannot fit in an int: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0, p1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/ArithmeticException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static verifyValueBounds(Ljava/lang/String;III)V
.registers 5
if-lt p1, p2, :cond_5
if-gt p1, p3, :cond_5
return-void
.line 292
:cond_5
new-instance v0, Lorg/joda/time/IllegalFieldValueException;
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p2
invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p3
invoke-direct {v0, p0, p1, p2, p3}, Lorg/joda/time/IllegalFieldValueException;-><init>(Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;)V
throw v0
.end method
.method public static verifyValueBounds(Lorg/joda/time/DateTimeField;III)V
.registers 5
if-lt p1, p2, :cond_5
if-gt p1, p3, :cond_5
return-void
.line 257
:cond_5
new-instance v0, Lorg/joda/time/IllegalFieldValueException;
invoke-virtual {p0}, Lorg/joda/time/DateTimeField;->getType()Lorg/joda/time/DateTimeFieldType;
move-result-object p0
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p2
invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p3
invoke-direct {v0, p0, p1, p2, p3}, Lorg/joda/time/IllegalFieldValueException;-><init>(Lorg/joda/time/DateTimeFieldType;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;)V
throw v0
.end method
.method public static verifyValueBounds(Lorg/joda/time/DateTimeFieldType;III)V
.registers 5
if-lt p1, p2, :cond_5
if-gt p1, p3, :cond_5
return-void
.line 275
:cond_5
new-instance v0, Lorg/joda/time/IllegalFieldValueException;
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p2
invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p3
invoke-direct {v0, p0, p1, p2, p3}, Lorg/joda/time/IllegalFieldValueException;-><init>(Lorg/joda/time/DateTimeFieldType;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;)V
throw v0
.end method