NumberValidationUtils.smali

.class public Lcom/sdk/orion/ui/baselibrary/utils/NumberValidationUtils;
.super Ljava/lang/Object;


# direct methods
.method public constructor <init>()V
    .registers 1

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method public static isDecimal(Ljava/lang/String;)Z
    .registers 2

    const-string/jumbo v0, "[-+]{0,1}\\d+\\.\\d*|[-+]{0,1}\\d*\\.\\d+"

    invoke-static {v0, p0}, Lcom/sdk/orion/ui/baselibrary/utils/NumberValidationUtils;->isMatch(Ljava/lang/String;Ljava/lang/String;)Z

    move-result v0

    return v0
.end method

.method private static isMatch(Ljava/lang/String;Ljava/lang/String;)Z
    .registers 4

    if-eqz p1, :cond_f

    const-string/jumbo v0, ""

    invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_11

    :cond_f
    const/4 v0, 0x0

    :goto_10
    return v0

    :cond_11
    invoke-static {p0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;

    move-result-object v0

    invoke-virtual {v0, p1}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;

    move-result-object v0

    invoke-virtual {v0}, Ljava/util/regex/Matcher;->matches()Z

    move-result v0

    goto :goto_10
.end method

.method public static isNegativeDecimal(Ljava/lang/String;)Z
    .registers 2

    const-string/jumbo v0, "^-[0]\\.[1-9]*|^-[1-9]\\d*\\.\\d*"

    invoke-static {v0, p0}, Lcom/sdk/orion/ui/baselibrary/utils/NumberValidationUtils;->isMatch(Ljava/lang/String;Ljava/lang/String;)Z

    move-result v0

    return v0
.end method

.method public static isNegativeInteger(Ljava/lang/String;)Z
    .registers 2

    const-string/jumbo v0, "^-[1-9]\\d*"

    invoke-static {v0, p0}, Lcom/sdk/orion/ui/baselibrary/utils/NumberValidationUtils;->isMatch(Ljava/lang/String;Ljava/lang/String;)Z

    move-result v0

    return v0
.end method

.method public static isPositiveDecimal(Ljava/lang/String;)Z
    .registers 2

    const-string/jumbo v0, "\\+{0,1}[0]\\.[1-9]*|\\+{0,1}[1-9]\\d*\\.\\d*"

    invoke-static {v0, p0}, Lcom/sdk/orion/ui/baselibrary/utils/NumberValidationUtils;->isMatch(Ljava/lang/String;Ljava/lang/String;)Z

    move-result v0

    return v0
.end method

.method public static isPositiveDecimal(Ljava/lang/String;I)Z
    .registers 4

    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string/jumbo v1, "\\+{0,1}[0]\\.[1-9]{"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v0

    const-string/jumbo v1, "}|\\+{0,1}[1-9]\\d*\\.[0-9]{0,"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v0

    const-string/jumbo v1, "}"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-static {v0, p0}, Lcom/sdk/orion/ui/baselibrary/utils/NumberValidationUtils;->isMatch(Ljava/lang/String;Ljava/lang/String;)Z

    move-result v0

    return v0
.end method

.method public static isPositiveInteger(Ljava/lang/String;)Z
    .registers 2

    const-string/jumbo v0, "^\\+{0,1}[1-9]\\d*"

    invoke-static {v0, p0}, Lcom/sdk/orion/ui/baselibrary/utils/NumberValidationUtils;->isMatch(Ljava/lang/String;Ljava/lang/String;)Z

    move-result v0

    return v0
.end method

.method public static isRealNumber(Ljava/lang/String;)Z
    .registers 2

    invoke-static {p0}, Lcom/sdk/orion/ui/baselibrary/utils/NumberValidationUtils;->isWholeNumber(Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_c

    invoke-static {p0}, Lcom/sdk/orion/ui/baselibrary/utils/NumberValidationUtils;->isDecimal(Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_e

    :cond_c
    const/4 v0, 0x1

    :goto_d
    return v0

    :cond_e
    const/4 v0, 0x0

    goto :goto_d
.end method

.method public static isWholeNumber(Ljava/lang/String;)Z
    .registers 2

    const-string/jumbo v0, "[+-]{0,1}0"

    invoke-static {v0, p0}, Lcom/sdk/orion/ui/baselibrary/utils/NumberValidationUtils;->isMatch(Ljava/lang/String;Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_15

    invoke-static {p0}, Lcom/sdk/orion/ui/baselibrary/utils/NumberValidationUtils;->isPositiveInteger(Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_15

    invoke-static {p0}, Lcom/sdk/orion/ui/baselibrary/utils/NumberValidationUtils;->isNegativeInteger(Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_17

    :cond_15
    const/4 v0, 0x1

    :goto_16
    return v0

    :cond_17
    const/4 v0, 0x0

    goto :goto_16
.end method