IntType.smali

.class public abstract Lorg/web3j/abi/datatypes/IntType;
.super Lorg/web3j/abi/datatypes/NumericType;
.source "IntType.java"


# direct methods
.method public constructor <init>(Ljava/lang/String;ILjava/math/BigInteger;)V
    .registers 6

    .prologue
    .line 11
    new-instance v0, Ljava/lang/StringBuilder;

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

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

    move-result-object v0

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

    move-result-object v0

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

    move-result-object v0

    invoke-direct {p0, v0, p3}, Lorg/web3j/abi/datatypes/NumericType;-><init>(Ljava/lang/String;Ljava/math/BigInteger;)V

    .line 12
    invoke-virtual {p0, p2, p3}, Lorg/web3j/abi/datatypes/IntType;->valid(ILjava/math/BigInteger;)Z

    move-result v0

    if-nez v0, :cond_22

    .line 13
    new-instance v0, Ljava/lang/UnsupportedOperationException;

    const-string v1, "Bitsize must be 8 bit aligned, and in range 0 < bitSize <= 256"

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

    throw v0

    .line 16
    :cond_22
    return-void
.end method

.method private static isValidBitCount(ILjava/math/BigInteger;)Z
    .registers 3

    .prologue
    .line 30
    invoke-virtual {p1}, Ljava/math/BigInteger;->bitLength()I

    move-result v0

    if-gt v0, p0, :cond_8

    const/4 v0, 0x1

    :goto_7
    return v0

    :cond_8
    const/4 v0, 0x0

    goto :goto_7
.end method

.method static isValidBitSize(I)Z
    .registers 2

    .prologue
    .line 24
    rem-int/lit8 v0, p0, 0x8

    if-nez v0, :cond_c

    if-lez p0, :cond_c

    const/16 v0, 0x100

    if-gt p0, v0, :cond_c

    const/4 v0, 0x1

    :goto_b
    return v0

    :cond_c
    const/4 v0, 0x0

    goto :goto_b
.end method


# virtual methods
.method valid(ILjava/math/BigInteger;)Z
    .registers 4

    .prologue
    .line 19
    invoke-static {p1}, Lorg/web3j/abi/datatypes/IntType;->isValidBitSize(I)Z

    move-result v0

    if-eqz v0, :cond_e

    invoke-static {p1, p2}, Lorg/web3j/abi/datatypes/IntType;->isValidBitCount(ILjava/math/BigInteger;)Z

    move-result v0

    if-eqz v0, :cond_e

    const/4 v0, 0x1

    :goto_d
    return v0

    :cond_e
    const/4 v0, 0x0

    goto :goto_d
.end method