AbstractPatriciaTrie.smali
.class abstract Lorg/ardverk/collection/AbstractPatriciaTrie;
.super Lorg/ardverk/collection/AbstractTrie;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/ardverk/collection/AbstractPatriciaTrie$1;,
Lorg/ardverk/collection/AbstractPatriciaTrie$d;,
Lorg/ardverk/collection/AbstractPatriciaTrie$e;,
Lorg/ardverk/collection/AbstractPatriciaTrie$b;,
Lorg/ardverk/collection/AbstractPatriciaTrie$a;,
Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;,
Lorg/ardverk/collection/AbstractPatriciaTrie$c;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">",
"Lorg/ardverk/collection/AbstractTrie",
"<TK;TV;>;"
}
.end annotation
# static fields
.field private static final serialVersionUID:J = -0x1ff92131f5768663L
# instance fields
.field private volatile transient entrySet:Ljava/util/Set;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set",
"<",
"Ljava/util/Map$Entry",
"<TK;TV;>;>;"
}
.end annotation
.end field
.field private volatile transient keySet:Ljava/util/Set;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set",
"<TK;>;"
}
.end annotation
.end field
.field transient modCount:I
.field final root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;"
}
.end annotation
.end field
.field private size:I
.field private volatile transient values:Ljava/util/Collection;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Collection",
"<TV;>;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.registers 5
const/4 v3, 0x0
const/4 v2, 0x0
invoke-direct {p0}, Lorg/ardverk/collection/AbstractTrie;-><init>()V
new-instance v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
const/4 v1, -0x1
invoke-direct {v0, v3, v3, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;I)V
iput-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput v2, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->size:I
iput v2, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->modCount:I
return-void
.end method
.method public constructor <init>(Ldxoptimizer/csm;)V
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ldxoptimizer/csm",
"<-TK;>;)V"
}
.end annotation
const/4 v3, 0x0
const/4 v2, 0x0
invoke-direct {p0, p1}, Lorg/ardverk/collection/AbstractTrie;-><init>(Ldxoptimizer/csm;)V
new-instance v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
const/4 v1, -0x1
invoke-direct {v0, v3, v3, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;I)V
iput-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput v2, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->size:I
iput v2, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->modCount:I
return-void
.end method
.method public constructor <init>(Ldxoptimizer/csm;Ljava/util/Map;)V
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ldxoptimizer/csm",
"<-TK;>;",
"Ljava/util/Map",
"<+TK;+TV;>;)V"
}
.end annotation
const/4 v3, 0x0
const/4 v2, 0x0
invoke-direct {p0, p1}, Lorg/ardverk/collection/AbstractTrie;-><init>(Ldxoptimizer/csm;)V
new-instance v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
const/4 v1, -0x1
invoke-direct {v0, v3, v3, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;I)V
iput-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput v2, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->size:I
iput v2, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->modCount:I
invoke-virtual {p0, p2}, Lorg/ardverk/collection/AbstractPatriciaTrie;->putAll(Ljava/util/Map;)V
return-void
.end method
.method public constructor <init>(Ljava/util/Map;)V
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map",
"<+TK;+TV;>;)V"
}
.end annotation
const/4 v3, 0x0
const/4 v2, 0x0
invoke-direct {p0}, Lorg/ardverk/collection/AbstractTrie;-><init>()V
new-instance v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
const/4 v1, -0x1
invoke-direct {v0, v3, v3, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;I)V
iput-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput v2, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->size:I
iput v2, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->modCount:I
invoke-virtual {p0, p1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->putAll(Ljava/util/Map;)V
return-void
.end method
.method private incrementModCount()V
.registers 2
iget v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->modCount:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->modCount:I
return-void
.end method
.method static isValidUplink(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Z
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<**>;",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<**>;)Z"
}
.end annotation
if-eqz p0, :cond_10
iget v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
iget v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
if-gt v0, v1, :cond_10
invoke-virtual {p0}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->isEmpty()Z
move-result v0
if-nez v0, :cond_10
const/4 v0, 0x1
:goto_f
return v0
:cond_10
const/4 v0, 0x0
goto :goto_f
.end method
.method private removeExternalEntry(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)V
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;)V"
}
.end annotation
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-ne p1, v0, :cond_c
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Cannot delete root Entry!"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_c
invoke-virtual {p1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->isExternalNode()Z
move-result v0
if-nez v0, :cond_2b
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " is not an external Entry!"
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/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_2b
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-ne v0, p1, :cond_42
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:goto_33
iget-object v2, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-ne v2, p1, :cond_45
iput-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:goto_39
iget v2, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
iget v3, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
if-le v2, v3, :cond_48
iput-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:goto_41
return-void
:cond_42
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
goto :goto_33
:cond_45
iput-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
goto :goto_39
:cond_48
iput-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->predecessor:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
goto :goto_41
.end method
.method private removeInternalEntry(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)V
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;)V"
}
.end annotation
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-ne p1, v0, :cond_c
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Cannot delete root Entry!"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_c
invoke-virtual {p1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->isInternalNode()Z
move-result v0
if-nez v0, :cond_2b
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " is not an internal Entry!"
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/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_2b
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->predecessor:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
iput v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
iget-object v2, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-ne v0, p1, :cond_96
iget-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:goto_39
iget-object v3, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->predecessor:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-ne v3, v1, :cond_45
iget-object v3, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-eq v3, p1, :cond_45
iget-object v3, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v3, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->predecessor:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:cond_45
iget-object v3, v2, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-ne v3, v1, :cond_99
iput-object v0, v2, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:goto_4b
iget v3, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
iget v4, v2, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
if-le v3, v4, :cond_53
iput-object v2, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:cond_53
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-ne v0, p1, :cond_5d
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:cond_5d
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-ne v0, p1, :cond_67
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:cond_67
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-ne v0, p1, :cond_9c
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:goto_71
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-static {v0, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->isValidUplink(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Z
move-result v0
if-eqz v0, :cond_89
iget-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->predecessor:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:cond_89
iget-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-static {v0, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->isValidUplink(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Z
move-result v0
if-eqz v0, :cond_95
iget-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->predecessor:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:cond_95
return-void
:cond_96
iget-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
goto :goto_39
:cond_99
iput-object v0, v2, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
goto :goto_4b
:cond_9c
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
goto :goto_71
.end method
.method private selectR(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;ILjava/lang/Object;Lorg/ardverk/collection/AbstractPatriciaTrie$c;)Z
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;ITK;",
"Lorg/ardverk/collection/AbstractPatriciaTrie$c",
"<",
"Ljava/util/Map$Entry",
"<TK;TV;>;>;)Z"
}
.end annotation
const/4 v0, 0x0
iget v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
if-gt v1, p2, :cond_11
invoke-virtual {p1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->isEmpty()Z
move-result v1
if-nez v1, :cond_f
invoke-virtual {p4, p1}, Lorg/ardverk/collection/AbstractPatriciaTrie$c;->a(Ljava/lang/Object;)V
:cond_e
:goto_e
return v0
:cond_f
const/4 v0, 0x1
goto :goto_e
:cond_11
iget v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
invoke-virtual {p0, p3, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->isBitSet(Ljava/lang/Object;I)Z
move-result v1
if-nez v1, :cond_2c
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget v2, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
invoke-direct {p0, v1, v2, p3, p4}, Lorg/ardverk/collection/AbstractPatriciaTrie;->selectR(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;ILjava/lang/Object;Lorg/ardverk/collection/AbstractPatriciaTrie$c;)Z
move-result v1
if-eqz v1, :cond_e
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
invoke-direct {p0, v0, v1, p3, p4}, Lorg/ardverk/collection/AbstractPatriciaTrie;->selectR(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;ILjava/lang/Object;Lorg/ardverk/collection/AbstractPatriciaTrie$c;)Z
move-result v0
goto :goto_e
:cond_2c
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget v2, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
invoke-direct {p0, v1, v2, p3, p4}, Lorg/ardverk/collection/AbstractPatriciaTrie;->selectR(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;ILjava/lang/Object;Lorg/ardverk/collection/AbstractPatriciaTrie$c;)Z
move-result v1
if-eqz v1, :cond_e
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
invoke-direct {p0, v0, v1, p3, p4}, Lorg/ardverk/collection/AbstractPatriciaTrie;->selectR(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;ILjava/lang/Object;Lorg/ardverk/collection/AbstractPatriciaTrie$c;)Z
move-result v0
goto :goto_e
.end method
.method private selectR(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;ILjava/lang/Object;Lorg/ardverk/collection/Cursor;Lorg/ardverk/collection/AbstractPatriciaTrie$c;)Z
.registers 13
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;ITK;",
"Lorg/ardverk/collection/Cursor",
"<-TK;-TV;>;",
"Lorg/ardverk/collection/AbstractPatriciaTrie$c",
"<",
"Ljava/util/Map$Entry",
"<TK;TV;>;>;)Z"
}
.end annotation
const/4 v6, 0x0
iget v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
if-gt v0, p2, :cond_3f
invoke-virtual {p1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->isEmpty()Z
move-result v0
if-nez v0, :cond_1a
invoke-interface {p4, p1}, Lorg/ardverk/collection/Cursor;->a(Ljava/util/Map$Entry;)Lorg/ardverk/collection/Cursor$Decision;
move-result-object v0
sget-object v1, Lorg/ardverk/collection/AbstractPatriciaTrie$1;->a:[I
invoke-virtual {v0}, Lorg/ardverk/collection/Cursor$Decision;->ordinal()I
move-result v0
aget v0, v1, v0
packed-switch v0, :pswitch_data_80
:cond_1a
const/4 v0, 0x1
:goto_1b
return v0
:pswitch_1c
new-instance v0, Ljava/lang/UnsupportedOperationException;
const-string v1, "Cannot remove during select"
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
:pswitch_24
invoke-virtual {p5, p1}, Lorg/ardverk/collection/AbstractPatriciaTrie$c;->a(Ljava/lang/Object;)V
move v0, v6
goto :goto_1b
:pswitch_29
new-instance v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-virtual {p1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->getKey()Ljava/lang/Object;
move-result-object v1
invoke-virtual {p1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->getValue()Ljava/lang/Object;
move-result-object v2
const/4 v3, -0x1
invoke-direct {v0, v1, v2, v3}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;I)V
invoke-virtual {p5, v0}, Lorg/ardverk/collection/AbstractPatriciaTrie$c;->a(Ljava/lang/Object;)V
invoke-virtual {p0, p1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->removeEntry(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Ljava/lang/Object;
move v0, v6
goto :goto_1b
:cond_3f
iget v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
invoke-virtual {p0, p3, v0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->isBitSet(Ljava/lang/Object;I)Z
move-result v0
if-nez v0, :cond_62
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget v2, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
move-object v0, p0
move-object v3, p3
move-object v4, p4
move-object v5, p5
invoke-direct/range {v0 .. v5}, Lorg/ardverk/collection/AbstractPatriciaTrie;->selectR(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;ILjava/lang/Object;Lorg/ardverk/collection/Cursor;Lorg/ardverk/collection/AbstractPatriciaTrie$c;)Z
move-result v0
if-eqz v0, :cond_7d
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget v2, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
move-object v0, p0
move-object v3, p3
move-object v4, p4
move-object v5, p5
invoke-direct/range {v0 .. v5}, Lorg/ardverk/collection/AbstractPatriciaTrie;->selectR(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;ILjava/lang/Object;Lorg/ardverk/collection/Cursor;Lorg/ardverk/collection/AbstractPatriciaTrie$c;)Z
move-result v0
goto :goto_1b
:cond_62
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget v2, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
move-object v0, p0
move-object v3, p3
move-object v4, p4
move-object v5, p5
invoke-direct/range {v0 .. v5}, Lorg/ardverk/collection/AbstractPatriciaTrie;->selectR(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;ILjava/lang/Object;Lorg/ardverk/collection/Cursor;Lorg/ardverk/collection/AbstractPatriciaTrie$c;)Z
move-result v0
if-eqz v0, :cond_7d
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget v2, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
move-object v0, p0
move-object v3, p3
move-object v4, p4
move-object v5, p5
invoke-direct/range {v0 .. v5}, Lorg/ardverk/collection/AbstractPatriciaTrie;->selectR(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;ILjava/lang/Object;Lorg/ardverk/collection/Cursor;Lorg/ardverk/collection/AbstractPatriciaTrie$c;)Z
move-result v0
goto :goto_1b
:cond_7d
move v0, v6
goto :goto_1b
nop
:pswitch_data_80
.packed-switch 0x1
:pswitch_1c
:pswitch_24
:pswitch_29
.end packed-switch
.end method
# virtual methods
.method addEntry(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;)",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;"
}
.end annotation
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:goto_6
iget v2, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
iget v3, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
if-ge v2, v3, :cond_12
iget v2, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
iget v3, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
if-gt v2, v3, :cond_4d
:cond_12
iput-object p1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->predecessor:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v2, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->key:Ljava/lang/Object;
iget v3, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
invoke-virtual {p0, v2, v3}, Lorg/ardverk/collection/AbstractPatriciaTrie;->isBitSet(Ljava/lang/Object;I)Z
move-result v2
if-nez v2, :cond_45
iput-object p1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:goto_22
iput-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget v2, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
iget v3, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
if-lt v2, v3, :cond_2c
iput-object p1, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:cond_2c
iget v2, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
iget v3, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
if-gt v2, v3, :cond_34
iput-object p1, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->predecessor:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:cond_34
iget-object v1, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-eq v0, v1, :cond_42
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->key:Ljava/lang/Object;
iget v2, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
invoke-virtual {p0, v1, v2}, Lorg/ardverk/collection/AbstractPatriciaTrie;->isBitSet(Ljava/lang/Object;I)Z
move-result v1
if-nez v1, :cond_4a
:cond_42
iput-object p1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:goto_44
return-object p1
:cond_45
iput-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object p1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
goto :goto_22
:cond_4a
iput-object p1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
goto :goto_44
:cond_4d
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->key:Ljava/lang/Object;
iget v2, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
invoke-virtual {p0, v0, v2}, Lorg/ardverk/collection/AbstractPatriciaTrie;->isBitSet(Ljava/lang/Object;I)Z
move-result v0
if-nez v0, :cond_5d
iget-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-object v4, v1
move-object v1, v0
move-object v0, v4
goto :goto_6
:cond_5d
iget-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-object v4, v1
move-object v1, v0
move-object v0, v4
goto :goto_6
.end method
.method public clear()V
.registers 4
const/4 v2, 0x0
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v2, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->key:Ljava/lang/Object;
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
const/4 v1, -0x1
iput v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v2, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->value:Ljava/lang/Object;
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v2, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v1, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v2, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v1, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iput-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->predecessor:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
const/4 v0, 0x0
iput v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->size:I
invoke-direct {p0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->incrementModCount()V
return-void
.end method
.method public containsKey(Ljava/lang/Object;)Z
.registers 6
const/4 v0, 0x0
if-nez p1, :cond_4
:cond_3
:goto_3
return v0
:cond_4
invoke-static {p1}, Lorg/ardverk/collection/Tries;->a(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
invoke-virtual {p0, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->getNearestEntryForKey(Ljava/lang/Object;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-result-object v2
invoke-virtual {v2}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->isEmpty()Z
move-result v3
if-nez v3, :cond_3
iget-object v2, v2, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->key:Ljava/lang/Object;
invoke-virtual {p0, v1, v2}, Lorg/ardverk/collection/AbstractPatriciaTrie;->compareKeys(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_3
const/4 v0, 0x1
goto :goto_3
.end method
.method decrementSize()V
.registers 2
iget v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->size:I
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->size:I
invoke-direct {p0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->incrementModCount()V
return-void
.end method
.method public entrySet()Ljava/util/Set;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Set",
"<",
"Ljava/util/Map$Entry",
"<TK;TV;>;>;"
}
.end annotation
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->entrySet:Ljava/util/Set;
if-nez v0, :cond_c
new-instance v0, Lorg/ardverk/collection/AbstractPatriciaTrie$a;
const/4 v1, 0x0
invoke-direct {v0, p0, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie$a;-><init>(Lorg/ardverk/collection/AbstractPatriciaTrie;Lorg/ardverk/collection/AbstractPatriciaTrie$1;)V
iput-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->entrySet:Ljava/util/Set;
:cond_c
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->entrySet:Ljava/util/Set;
return-object v0
.end method
.method firstEntry()Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;"
}
.end annotation
invoke-virtual {p0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->isEmpty()Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
:goto_7
return-object v0
:cond_8
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-virtual {p0, v0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->followLeft(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-result-object v0
goto :goto_7
.end method
.method followLeft(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;)",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;"
}
.end annotation
:goto_0
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-virtual {v0}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->isEmpty()Z
move-result v1
if-eqz v1, :cond_a
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:cond_a
iget v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
iget v2, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
if-gt v1, v2, :cond_11
return-object v0
:cond_11
move-object p1, v0
goto :goto_0
.end method
.method public get(Ljava/lang/Object;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Object;",
")TV;"
}
.end annotation
invoke-virtual {p0, p1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->getEntry(Ljava/lang/Object;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-result-object v0
if-eqz v0, :cond_b
invoke-virtual {v0}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->getValue()Ljava/lang/Object;
move-result-object v0
:goto_a
return-object v0
:cond_b
const/4 v0, 0x0
goto :goto_a
.end method
.method getEntry(Ljava/lang/Object;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Object;",
")",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;"
}
.end annotation
const/4 v1, 0x0
invoke-static {p1}, Lorg/ardverk/collection/Tries;->a(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
if-nez v2, :cond_8
:goto_7
return-object v1
:cond_8
invoke-virtual {p0, v2}, Lorg/ardverk/collection/AbstractPatriciaTrie;->getNearestEntryForKey(Ljava/lang/Object;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-result-object v0
invoke-virtual {v0}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->isEmpty()Z
move-result v3
if-nez v3, :cond_1c
iget-object v3, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->key:Ljava/lang/Object;
invoke-virtual {p0, v2, v3}, Lorg/ardverk/collection/AbstractPatriciaTrie;->compareKeys(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_1c
:goto_1a
move-object v1, v0
goto :goto_7
:cond_1c
move-object v0, v1
goto :goto_1a
.end method
.method getNearestEntryForKey(Ljava/lang/Object;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;)",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;"
}
.end annotation
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:goto_6
iget v2, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
iget v0, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
if-gt v2, v0, :cond_d
return-object v1
:cond_d
iget v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
invoke-virtual {p0, p1, v0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->isBitSet(Ljava/lang/Object;I)Z
move-result v0
if-nez v0, :cond_1b
iget-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-object v3, v1
move-object v1, v0
move-object v0, v3
goto :goto_6
:cond_1b
iget-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-object v3, v1
move-object v1, v0
move-object v0, v3
goto :goto_6
.end method
.method incrementSize()V
.registers 2
iget v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->size:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->size:I
invoke-direct {p0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->incrementModCount()V
return-void
.end method
.method public keySet()Ljava/util/Set;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Set",
"<TK;>;"
}
.end annotation
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->keySet:Ljava/util/Set;
if-nez v0, :cond_c
new-instance v0, Lorg/ardverk/collection/AbstractPatriciaTrie$b;
const/4 v1, 0x0
invoke-direct {v0, p0, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie$b;-><init>(Lorg/ardverk/collection/AbstractPatriciaTrie;Lorg/ardverk/collection/AbstractPatriciaTrie$1;)V
iput-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->keySet:Ljava/util/Set;
:cond_c
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->keySet:Ljava/util/Set;
return-object v0
.end method
.method nextEntry(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;)",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;"
}
.end annotation
if-nez p1, :cond_7
invoke-virtual {p0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->firstEntry()Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-result-object v0
:goto_6
return-object v0
:cond_7
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->predecessor:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
const/4 v1, 0x0
invoke-virtual {p0, v0, p1, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->nextEntryImpl(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-result-object v0
goto :goto_6
.end method
.method nextEntryImpl(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;)",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;"
}
.end annotation
const/4 v0, 0x0
if-eqz p2, :cond_7
iget-object v1, p2, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->predecessor:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-eq p1, v1, :cond_13
:cond_7
:goto_7
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-virtual {v1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->isEmpty()Z
move-result v1
if-nez v1, :cond_13
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-ne p2, v1, :cond_1a
:cond_13
invoke-virtual {p1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->isEmpty()Z
move-result v1
if-eqz v1, :cond_28
:cond_19
:goto_19
return-object v0
:cond_1a
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-static {v1, p1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->isValidUplink(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Z
move-result v1
if-eqz v1, :cond_25
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
goto :goto_19
:cond_25
iget-object p1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
goto :goto_7
:cond_28
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-eqz v1, :cond_19
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-eq p2, v1, :cond_44
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-static {v0, p1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->isValidUplink(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Z
move-result v0
if-eqz v0, :cond_3b
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
goto :goto_19
:cond_3b
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-virtual {p0, v0, p2, p3}, Lorg/ardverk/collection/AbstractPatriciaTrie;->nextEntryImpl(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-result-object v0
goto :goto_19
:cond_42
iget-object p1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:cond_44
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v1, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-ne p1, v1, :cond_4d
if-ne p1, p3, :cond_42
goto :goto_19
:cond_4d
if-eq p1, p3, :cond_19
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v1, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-eqz v1, :cond_19
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v1, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-eq p2, v1, :cond_6c
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v1, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v2, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-static {v1, v2}, Lorg/ardverk/collection/AbstractPatriciaTrie;->isValidUplink(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Z
move-result v1
if-eqz v1, :cond_6c
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
goto :goto_19
:cond_6c
iget-object v1, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v1, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v2, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-eq v1, v2, :cond_19
iget-object v0, p1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->parent:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-virtual {p0, v0, p2, p3}, Lorg/ardverk/collection/AbstractPatriciaTrie;->nextEntryImpl(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-result-object v0
goto :goto_19
.end method
.method public put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;TV;)TV;"
}
.end annotation
if-nez p1, :cond_a
new-instance v0, Ljava/lang/NullPointerException;
const-string v1, "Key cannot be null"
invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw v0
:cond_a
invoke-virtual {p0, p1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->lengthInBits(Ljava/lang/Object;)I
move-result v0
if-nez v0, :cond_26
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-virtual {v0}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->isEmpty()Z
move-result v0
if-eqz v0, :cond_22
invoke-virtual {p0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->incrementSize()V
:goto_1b
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-virtual {v0, p1, p2}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->setKeyValue(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
:goto_21
return-object v0
:cond_22
invoke-direct {p0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->incrementModCount()V
goto :goto_1b
:cond_26
invoke-virtual {p0, p1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->getNearestEntryForKey(Ljava/lang/Object;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-result-object v0
iget-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->key:Ljava/lang/Object;
invoke-virtual {p0, p1, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->compareKeys(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_44
invoke-virtual {v0}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->isEmpty()Z
move-result v1
if-eqz v1, :cond_40
invoke-virtual {p0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->incrementSize()V
:goto_3b
invoke-virtual {v0, p1, p2}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->setKeyValue(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
goto :goto_21
:cond_40
invoke-direct {p0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->incrementModCount()V
goto :goto_3b
:cond_44
iget-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->key:Ljava/lang/Object;
invoke-virtual {p0, p1, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->bitIndex(Ljava/lang/Object;Ljava/lang/Object;)I
move-result v1
invoke-static {v1}, Lorg/ardverk/collection/Tries;->a(I)Z
move-result v2
if-nez v2, :cond_91
invoke-static {v1}, Lorg/ardverk/collection/Tries;->d(I)Z
move-result v2
if-eqz v2, :cond_63
new-instance v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-direct {v0, p1, p2, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;I)V
invoke-virtual {p0, v0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->addEntry(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-virtual {p0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->incrementSize()V
const/4 v0, 0x0
goto :goto_21
:cond_63
invoke-static {v1}, Lorg/ardverk/collection/Tries;->c(I)Z
move-result v2
if-eqz v2, :cond_7f
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-virtual {v0}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->isEmpty()Z
move-result v0
if-eqz v0, :cond_7b
invoke-virtual {p0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->incrementSize()V
:goto_74
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-virtual {v0, p1, p2}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->setKeyValue(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
goto :goto_21
:cond_7b
invoke-direct {p0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->incrementModCount()V
goto :goto_74
:cond_7f
invoke-static {v1}, Lorg/ardverk/collection/Tries;->b(I)Z
move-result v2
if-eqz v2, :cond_91
iget-object v2, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-eq v0, v2, :cond_91
invoke-direct {p0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->incrementModCount()V
invoke-virtual {v0, p1, p2}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->setKeyValue(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
goto :goto_21
:cond_91
new-instance v0, Ljava/lang/IndexOutOfBoundsException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Failed to put: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, " -> "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, ", "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)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/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public remove(Ljava/lang/Object;)Ljava/lang/Object;
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Object;",
")TV;"
}
.end annotation
const/4 v2, 0x0
if-nez p1, :cond_5
move-object v0, v2
:goto_4
return-object v0
:cond_5
invoke-static {p1}, Lorg/ardverk/collection/Tries;->a(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
:goto_f
iget v4, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
iget v0, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
if-gt v4, v0, :cond_2a
invoke-virtual {v1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->isEmpty()Z
move-result v0
if-nez v0, :cond_28
iget-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->key:Ljava/lang/Object;
invoke-virtual {p0, v3, v0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->compareKeys(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_28
invoke-virtual {p0, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->removeEntry(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Ljava/lang/Object;
move-result-object v0
goto :goto_4
:cond_28
move-object v0, v2
goto :goto_4
:cond_2a
iget v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->bitIndex:I
invoke-virtual {p0, v3, v0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->isBitSet(Ljava/lang/Object;I)Z
move-result v0
if-nez v0, :cond_38
iget-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-object v5, v1
move-object v1, v0
move-object v0, v5
goto :goto_f
:cond_38
iget-object v0, v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->right:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-object v5, v1
move-object v1, v0
move-object v0, v5
goto :goto_f
.end method
.method removeEntry(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Ljava/lang/Object;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry",
"<TK;TV;>;)TV;"
}
.end annotation
const/4 v1, 0x0
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
if-eq p1, v0, :cond_e
invoke-virtual {p1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->isInternalNode()Z
move-result v0
if-eqz v0, :cond_16
invoke-direct {p0, p1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->removeInternalEntry(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)V
:cond_e
:goto_e
invoke-virtual {p0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->decrementSize()V
invoke-virtual {p1, v1, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->setKeyValue(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
:cond_16
invoke-direct {p0, p1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->removeExternalEntry(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)V
goto :goto_e
.end method
.method public select(Ljava/lang/Object;)Ljava/util/Map$Entry;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;)",
"Ljava/util/Map$Entry",
"<TK;TV;>;"
}
.end annotation
const/4 v0, 0x0
new-instance v1, Lorg/ardverk/collection/AbstractPatriciaTrie$c;
invoke-direct {v1, v0}, Lorg/ardverk/collection/AbstractPatriciaTrie$c;-><init>(Lorg/ardverk/collection/AbstractPatriciaTrie$1;)V
iget-object v2, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v2, v2, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
const/4 v3, -0x1
invoke-direct {p0, v2, v3, p1, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->selectR(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;ILjava/lang/Object;Lorg/ardverk/collection/AbstractPatriciaTrie$c;)Z
move-result v2
if-nez v2, :cond_17
invoke-virtual {v1}, Lorg/ardverk/collection/AbstractPatriciaTrie$c;->a()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
:cond_17
return-object v0
.end method
.method public select(Ljava/lang/Object;Lorg/ardverk/collection/Cursor;)Ljava/util/Map$Entry;
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;",
"Lorg/ardverk/collection/Cursor",
"<-TK;-TV;>;)",
"Ljava/util/Map$Entry",
"<TK;TV;>;"
}
.end annotation
new-instance v5, Lorg/ardverk/collection/AbstractPatriciaTrie$c;
const/4 v0, 0x0
invoke-direct {v5, v0}, Lorg/ardverk/collection/AbstractPatriciaTrie$c;-><init>(Lorg/ardverk/collection/AbstractPatriciaTrie$1;)V
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->root:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
iget-object v1, v0, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->left:Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
const/4 v2, -0x1
move-object v0, p0
move-object v3, p1
move-object v4, p2
invoke-direct/range {v0 .. v5}, Lorg/ardverk/collection/AbstractPatriciaTrie;->selectR(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;ILjava/lang/Object;Lorg/ardverk/collection/Cursor;Lorg/ardverk/collection/AbstractPatriciaTrie$c;)Z
invoke-virtual {v5}, Lorg/ardverk/collection/AbstractPatriciaTrie$c;->a()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
return-object v0
.end method
.method public size()I
.registers 2
iget v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->size:I
return v0
.end method
.method public traverse(Lorg/ardverk/collection/Cursor;)Ljava/util/Map$Entry;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/ardverk/collection/Cursor",
"<-TK;-TV;>;)",
"Ljava/util/Map$Entry",
"<TK;TV;>;"
}
.end annotation
const/4 v1, 0x0
invoke-virtual {p0, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie;->nextEntry(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-result-object v0
:goto_5
if-eqz v0, :cond_33
invoke-interface {p1, v0}, Lorg/ardverk/collection/Cursor;->a(Ljava/util/Map$Entry;)Lorg/ardverk/collection/Cursor$Decision;
move-result-object v3
invoke-virtual {p0, v0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->nextEntry(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
move-result-object v2
sget-object v4, Lorg/ardverk/collection/AbstractPatriciaTrie$1;->a:[I
invoke-virtual {v3}, Lorg/ardverk/collection/Cursor$Decision;->ordinal()I
move-result v3
aget v3, v4, v3
packed-switch v3, :pswitch_data_36
:goto_1a
move-object v0, v2
goto :goto_5
:pswitch_1c
invoke-virtual {p0, v0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->removeEntry(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Ljava/lang/Object;
goto :goto_1a
:pswitch_20
new-instance v1, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
invoke-virtual {v0}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->getKey()Ljava/lang/Object;
move-result-object v2
invoke-virtual {v0}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;->getValue()Ljava/lang/Object;
move-result-object v3
const/4 v4, -0x1
invoke-direct {v1, v2, v3, v4}, Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;I)V
invoke-virtual {p0, v0}, Lorg/ardverk/collection/AbstractPatriciaTrie;->removeEntry(Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;)Ljava/lang/Object;
move-object v0, v1
:goto_32
:pswitch_32
return-object v0
:cond_33
move-object v0, v1
goto :goto_32
nop
:pswitch_data_36
.packed-switch 0x1
:pswitch_1c
:pswitch_32
:pswitch_20
.end packed-switch
.end method
.method public values()Ljava/util/Collection;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Collection",
"<TV;>;"
}
.end annotation
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->values:Ljava/util/Collection;
if-nez v0, :cond_c
new-instance v0, Lorg/ardverk/collection/AbstractPatriciaTrie$e;
const/4 v1, 0x0
invoke-direct {v0, p0, v1}, Lorg/ardverk/collection/AbstractPatriciaTrie$e;-><init>(Lorg/ardverk/collection/AbstractPatriciaTrie;Lorg/ardverk/collection/AbstractPatriciaTrie$1;)V
iput-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->values:Ljava/util/Collection;
:cond_c
iget-object v0, p0, Lorg/ardverk/collection/AbstractPatriciaTrie;->values:Ljava/util/Collection;
return-object v0
.end method