StaticArray.smali
.class public Lorg/web3j/abi/datatypes/StaticArray;
.super Lorg/web3j/abi/datatypes/Array;
.source "StaticArray.java"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<T::",
"Lorg/web3j/abi/datatypes/Type;",
">",
"Lorg/web3j/abi/datatypes/Array",
"<TT;>;"
}
.end annotation
# static fields
.field public static MAX_SIZE_OF_STATIC_ARRAY:I
# instance fields
.field private expectedSize:Ljava/lang/Integer;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 14
const/16 v0, 0x20
sput v0, Lorg/web3j/abi/datatypes/StaticArray;->MAX_SIZE_OF_STATIC_ARRAY:I
return-void
.end method
.method public constructor <init>(ILjava/util/List;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Ljava/util/List",
"<TT;>;)V"
}
.end annotation
.prologue
.line 37
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const/4 v0, 0x0
invoke-interface {p2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/web3j/abi/datatypes/Type;
invoke-interface {v0}, Lorg/web3j/abi/datatypes/Type;->getTypeAsString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "["
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-interface {p2}, Ljava/util/List;->size()I
move-result v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string 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-direct {p0, v0, p2}, Lorg/web3j/abi/datatypes/Array;-><init>(Ljava/lang/String;Ljava/util/List;)V
.line 38
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
iput-object v0, p0, Lorg/web3j/abi/datatypes/StaticArray;->expectedSize:Ljava/lang/Integer;
.line 39
invoke-direct {p0}, Lorg/web3j/abi/datatypes/StaticArray;->isValid()V
.line 40
return-void
.end method
.method public varargs constructor <init>(I[Lorg/web3j/abi/datatypes/Type;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(I[TT;)V"
}
.end annotation
.prologue
.line 26
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const/4 v1, 0x0
aget-object v1, p2, v1
invoke-interface {v1}, Lorg/web3j/abi/datatypes/Type;->getTypeAsString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "["
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
array-length v1, p2
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string 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-direct {p0, v0, p2}, Lorg/web3j/abi/datatypes/Array;-><init>(Ljava/lang/String;[Lorg/web3j/abi/datatypes/Type;)V
.line 27
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
iput-object v0, p0, Lorg/web3j/abi/datatypes/StaticArray;->expectedSize:Ljava/lang/Integer;
.line 28
invoke-direct {p0}, Lorg/web3j/abi/datatypes/StaticArray;->isValid()V
.line 29
return-void
.end method
.method public constructor <init>(Ljava/util/List;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<TT;>;)V"
}
.end annotation
.prologue
.line 32
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const/4 v0, 0x0
invoke-interface {p1, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/web3j/abi/datatypes/Type;
invoke-interface {v0}, Lorg/web3j/abi/datatypes/Type;->getTypeAsString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "["
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string 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-direct {p0, v0, p1}, Lorg/web3j/abi/datatypes/Array;-><init>(Ljava/lang/String;Ljava/util/List;)V
.line 33
invoke-direct {p0}, Lorg/web3j/abi/datatypes/StaticArray;->isValid()V
.line 34
return-void
.end method
.method public varargs constructor <init>([Lorg/web3j/abi/datatypes/Type;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"([TT;)V"
}
.end annotation
.prologue
.line 20
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const/4 v1, 0x0
aget-object v1, p1, v1
invoke-interface {v1}, Lorg/web3j/abi/datatypes/Type;->getTypeAsString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "["
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
array-length v1, p1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string 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-direct {p0, v0, p1}, Lorg/web3j/abi/datatypes/Array;-><init>(Ljava/lang/String;[Lorg/web3j/abi/datatypes/Type;)V
.line 21
invoke-direct {p0}, Lorg/web3j/abi/datatypes/StaticArray;->isValid()V
.line 22
return-void
.end method
.method private isValid()V
.registers 4
.prologue
.line 43
const/16 v0, 0x20
sput v0, Lorg/web3j/abi/datatypes/StaticArray;->MAX_SIZE_OF_STATIC_ARRAY:I
.line 44
iget-object v0, p0, Lorg/web3j/abi/datatypes/StaticArray;->expectedSize:Ljava/lang/Integer;
if-nez v0, :cond_1a
iget-object v0, p0, Lorg/web3j/abi/datatypes/StaticArray;->value:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
sget v1, Lorg/web3j/abi/datatypes/StaticArray;->MAX_SIZE_OF_STATIC_ARRAY:I
if-le v0, v1, :cond_1a
.line 45
new-instance v0, Ljava/lang/UnsupportedOperationException;
const-string v1, "Static arrays with a length greater than 32 are not supported."
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
.line 47
:cond_1a
iget-object v0, p0, Lorg/web3j/abi/datatypes/StaticArray;->expectedSize:Ljava/lang/Integer;
if-eqz v0, :cond_5b
iget-object v0, p0, Lorg/web3j/abi/datatypes/StaticArray;->value:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
iget-object v1, p0, Lorg/web3j/abi/datatypes/StaticArray;->expectedSize:Ljava/lang/Integer;
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v1
if-eq v0, v1, :cond_5b
.line 48
new-instance v0, Ljava/lang/UnsupportedOperationException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Expected array of type ["
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "] to have ["
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v2, p0, Lorg/web3j/abi/datatypes/StaticArray;->expectedSize:Ljava/lang/Integer;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "] elements."
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
.line 52
:cond_5b
return-void
.end method