StringKeyAnalyzer.smali
.class public Lorg/ardverk/collection/StringKeyAnalyzer;
.super Ldxoptimizer/csk;
# interfaces
.implements Ljava/io/Serializable;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Ldxoptimizer/csk",
"<",
"Ljava/lang/String;",
">;",
"Ljava/io/Serializable;"
}
.end annotation
# static fields
.field public static final BYTE:Lorg/ardverk/collection/StringKeyAnalyzer;
.field public static final CHAR:Lorg/ardverk/collection/StringKeyAnalyzer;
.field public static final INSTANCE:Lorg/ardverk/collection/StringKeyAnalyzer;
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.end field
.field private static final serialVersionUID:J = 0x6a8c75d182ef3644L
# instance fields
.field private final msb:I
.field private final size:I
# direct methods
.method static constructor <clinit>()V
.registers 2
new-instance v0, Lorg/ardverk/collection/StringKeyAnalyzer;
const/16 v1, 0x10
invoke-direct {v0, v1}, Lorg/ardverk/collection/StringKeyAnalyzer;-><init>(I)V
sput-object v0, Lorg/ardverk/collection/StringKeyAnalyzer;->CHAR:Lorg/ardverk/collection/StringKeyAnalyzer;
new-instance v0, Lorg/ardverk/collection/StringKeyAnalyzer;
const/16 v1, 0x8
invoke-direct {v0, v1}, Lorg/ardverk/collection/StringKeyAnalyzer;-><init>(I)V
sput-object v0, Lorg/ardverk/collection/StringKeyAnalyzer;->BYTE:Lorg/ardverk/collection/StringKeyAnalyzer;
sget-object v0, Lorg/ardverk/collection/StringKeyAnalyzer;->CHAR:Lorg/ardverk/collection/StringKeyAnalyzer;
sput-object v0, Lorg/ardverk/collection/StringKeyAnalyzer;->INSTANCE:Lorg/ardverk/collection/StringKeyAnalyzer;
return-void
.end method
.method private constructor <init>(I)V
.registers 4
const/4 v0, 0x1
add-int/lit8 v1, p1, -0x1
shl-int/2addr v0, v1
invoke-direct {p0, p1, v0}, Lorg/ardverk/collection/StringKeyAnalyzer;-><init>(II)V
return-void
.end method
.method private constructor <init>(II)V
.registers 3
invoke-direct {p0}, Ldxoptimizer/csk;-><init>()V
iput p1, p0, Lorg/ardverk/collection/StringKeyAnalyzer;->size:I
iput p2, p0, Lorg/ardverk/collection/StringKeyAnalyzer;->msb:I
return-void
.end method
.method private mask(I)I
.registers 3
iget v0, p0, Lorg/ardverk/collection/StringKeyAnalyzer;->msb:I
ushr-int/2addr v0, p1
return v0
.end method
.method private valueAt(Ljava/lang/String;I)C
.registers 6
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-ge p2, v0, :cond_14
invoke-virtual {p1, p2}, Ljava/lang/String;->charAt(I)C
move-result v0
iget v1, p0, Lorg/ardverk/collection/StringKeyAnalyzer;->size:I
const/16 v2, 0x8
if-ne v1, v2, :cond_13
and-int/lit16 v0, v0, 0xff
int-to-char v0, v0
:cond_13
:goto_13
return v0
:cond_14
const/4 v0, 0x0
goto :goto_13
.end method
# virtual methods
.method public bridge synthetic bitIndex(Ljava/lang/Object;Ljava/lang/Object;)I
.registers 4
check-cast p1, Ljava/lang/String;
check-cast p2, Ljava/lang/String;
invoke-virtual {p0, p1, p2}, Lorg/ardverk/collection/StringKeyAnalyzer;->bitIndex(Ljava/lang/String;Ljava/lang/String;)I
move-result v0
return v0
.end method
.method public bitIndex(Ljava/lang/String;Ljava/lang/String;)I
.registers 11
const/4 v1, 0x0
const/4 v2, 0x1
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
invoke-virtual {p2}, Ljava/lang/String;->length()I
move-result v3
invoke-static {v0, v3}, Ljava/lang/Math;->max(II)I
move-result v4
move v3, v1
:goto_f
if-ge v3, v4, :cond_39
invoke-direct {p0, p1, v3}, Lorg/ardverk/collection/StringKeyAnalyzer;->valueAt(Ljava/lang/String;I)C
move-result v5
invoke-direct {p0, p2, v3}, Lorg/ardverk/collection/StringKeyAnalyzer;->valueAt(Ljava/lang/String;I)C
move-result v0
if-eq v5, v0, :cond_31
xor-int v6, v5, v0
move v0, v1
:goto_1e
iget v7, p0, Lorg/ardverk/collection/StringKeyAnalyzer;->size:I
if-ge v0, v7, :cond_31
invoke-direct {p0, v0}, Lorg/ardverk/collection/StringKeyAnalyzer;->mask(I)I
move-result v7
and-int/2addr v7, v6
if-eqz v7, :cond_2e
iget v1, p0, Lorg/ardverk/collection/StringKeyAnalyzer;->size:I
mul-int/2addr v1, v3
add-int/2addr v0, v1
:goto_2d
return v0
:cond_2e
add-int/lit8 v0, v0, 0x1
goto :goto_1e
:cond_31
if-eqz v5, :cond_3f
move v0, v1
:goto_34
add-int/lit8 v2, v3, 0x1
move v3, v2
move v2, v0
goto :goto_f
:cond_39
if-eqz v2, :cond_3d
const/4 v0, -0x1
goto :goto_2d
:cond_3d
const/4 v0, -0x2
goto :goto_2d
:cond_3f
move v0, v2
goto :goto_34
.end method
.method public bridge synthetic isBitSet(Ljava/lang/Object;I)Z
.registers 4
check-cast p1, Ljava/lang/String;
invoke-virtual {p0, p1, p2}, Lorg/ardverk/collection/StringKeyAnalyzer;->isBitSet(Ljava/lang/String;I)Z
move-result v0
return v0
.end method
.method public isBitSet(Ljava/lang/String;I)Z
.registers 6
const/4 v0, 0x0
invoke-virtual {p0, p1}, Lorg/ardverk/collection/StringKeyAnalyzer;->lengthInBits(Ljava/lang/String;)I
move-result v1
if-lt p2, v1, :cond_8
:cond_7
:goto_7
return v0
:cond_8
iget v1, p0, Lorg/ardverk/collection/StringKeyAnalyzer;->size:I
div-int v1, p2, v1
iget v2, p0, Lorg/ardverk/collection/StringKeyAnalyzer;->size:I
rem-int v2, p2, v2
invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C
move-result v1
invoke-direct {p0, v2}, Lorg/ardverk/collection/StringKeyAnalyzer;->mask(I)I
move-result v2
and-int/2addr v1, v2
if-eqz v1, :cond_7
const/4 v0, 0x1
goto :goto_7
.end method
.method public bridge synthetic isPrefix(Ljava/lang/Object;Ljava/lang/Object;)Z
.registers 4
check-cast p1, Ljava/lang/String;
check-cast p2, Ljava/lang/String;
invoke-virtual {p0, p1, p2}, Lorg/ardverk/collection/StringKeyAnalyzer;->isPrefix(Ljava/lang/String;Ljava/lang/String;)Z
move-result v0
return v0
.end method
.method public isPrefix(Ljava/lang/String;Ljava/lang/String;)Z
.registers 4
invoke-virtual {p1, p2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
return v0
.end method
.method public bridge synthetic lengthInBits(Ljava/lang/Object;)I
.registers 3
check-cast p1, Ljava/lang/String;
invoke-virtual {p0, p1}, Lorg/ardverk/collection/StringKeyAnalyzer;->lengthInBits(Ljava/lang/String;)I
move-result v0
return v0
.end method
.method public lengthInBits(Ljava/lang/String;)I
.registers 4
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
iget v1, p0, Lorg/ardverk/collection/StringKeyAnalyzer;->size:I
mul-int/2addr v0, v1
return v0
.end method