EnumAdapter.smali
.class final Lcom/squareup/wire/EnumAdapter;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<E::",
"Lcom/squareup/wire/ProtoEnum;",
">",
"Ljava/lang/Object;"
}
.end annotation
# static fields
.field private static final COMPARATOR:Ljava/util/Comparator;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Comparator<",
"Lcom/squareup/wire/ProtoEnum;",
">;"
}
.end annotation
.end field
# instance fields
.field private final constants:[Lcom/squareup/wire/ProtoEnum;
.annotation system Ldalvik/annotation/Signature;
value = {
"[TE;"
}
.end annotation
.end field
.field private final isDense:Z
.field private final type:Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Class<",
"TE;>;"
}
.end annotation
.end field
.field private final values:[I
# direct methods
.method public static constructor <clinit>()V
.registers 1
new-instance v0, Lcom/squareup/wire/EnumAdapter$1;
invoke-direct {v0}, Lcom/squareup/wire/EnumAdapter$1;-><init>()V
sput-object v0, Lcom/squareup/wire/EnumAdapter;->COMPARATOR:Ljava/util/Comparator;
return-void
.end method
.method public constructor <init>(Ljava/lang/Class;)V
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"TE;>;)V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lcom/squareup/wire/EnumAdapter;->type:Ljava/lang/Class;
.line 3
invoke-virtual {p1}, Ljava/lang/Class;->getEnumConstants()[Ljava/lang/Object;
move-result-object p1
check-cast p1, [Lcom/squareup/wire/ProtoEnum;
iput-object p1, p0, Lcom/squareup/wire/EnumAdapter;->constants:[Lcom/squareup/wire/ProtoEnum;
.line 4
sget-object v0, Lcom/squareup/wire/EnumAdapter;->COMPARATOR:Ljava/util/Comparator;
invoke-static {p1, v0}, Ljava/util/Arrays;->sort([Ljava/lang/Object;Ljava/util/Comparator;)V
.line 5
array-length v0, p1
const/4 v1, 0x0
.line 6
aget-object v2, p1, v1
invoke-interface {v2}, Lcom/squareup/wire/ProtoEnum;->getValue()I
move-result v2
const/4 v3, 0x1
if-ne v2, v3, :cond_2d
add-int/lit8 v2, v0, -0x1
aget-object p1, p1, v2
invoke-interface {p1}, Lcom/squareup/wire/ProtoEnum;->getValue()I
move-result p1
if-ne p1, v0, :cond_2d
.line 7
iput-boolean v3, p0, Lcom/squareup/wire/EnumAdapter;->isDense:Z
const/4 p1, 0x0
.line 8
iput-object p1, p0, Lcom/squareup/wire/EnumAdapter;->values:[I
goto :goto_44
.line 9
:cond_2d
iput-boolean v1, p0, Lcom/squareup/wire/EnumAdapter;->isDense:Z
.line 10
new-array p1, v0, [I
iput-object p1, p0, Lcom/squareup/wire/EnumAdapter;->values:[I
:goto_33
if-ge v1, v0, :cond_44
.line 11
iget-object p1, p0, Lcom/squareup/wire/EnumAdapter;->values:[I
iget-object v2, p0, Lcom/squareup/wire/EnumAdapter;->constants:[Lcom/squareup/wire/ProtoEnum;
aget-object v2, v2, v1
invoke-interface {v2}, Lcom/squareup/wire/ProtoEnum;->getValue()I
move-result v2
aput v2, p1, v1
add-int/lit8 v1, v1, 0x1
goto :goto_33
:cond_44
:goto_44
return-void
.end method
# virtual methods
.method public fromInt(I)Lcom/squareup/wire/ProtoEnum;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)TE;"
}
.end annotation
.line 1
iget-boolean v0, p0, Lcom/squareup/wire/EnumAdapter;->isDense:Z
if-eqz v0, :cond_7
add-int/lit8 v0, p1, -0x1
goto :goto_d
:cond_7
iget-object v0, p0, Lcom/squareup/wire/EnumAdapter;->values:[I
invoke-static {v0, p1}, Ljava/util/Arrays;->binarySearch([II)I
move-result v0
.line 2
:goto_d
:try_start_d
iget-object v1, p0, Lcom/squareup/wire/EnumAdapter;->constants:[Lcom/squareup/wire/ProtoEnum;
aget-object p1, v1, v0
:try_end_11
.catch Ljava/lang/IndexOutOfBoundsException; {:try_start_d .. :try_end_11} :catch_12
return-object p1
.line 3
:catch_12
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Unknown enum tag "
const-string v2, " for "
.line 4
invoke-static {v1, p1, v2}, Landroidx/core/content/c;->g(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p1
.line 5
iget-object v1, p0, Lcom/squareup/wire/EnumAdapter;->type:Ljava/lang/Class;
.line 6
invoke-virtual {v1}, Ljava/lang/Class;->getCanonicalName()Ljava/lang/String;
move-result-object v1
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public toInt(Lcom/squareup/wire/ProtoEnum;)I
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(TE;)I"
}
.end annotation
invoke-interface {p1}, Lcom/squareup/wire/ProtoEnum;->getValue()I
move-result p1
return p1
.end method