PatriciaTrie$c.smali

.class Lorg/ardverk/collection/PatriciaTrie$c;
.super Lorg/ardverk/collection/PatriciaTrie$e;


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lorg/ardverk/collection/PatriciaTrie;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x0
    name = "c"
.end annotation


# instance fields
.field protected final a:Ljava/lang/Object;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "TK;"
        }
    .end annotation
.end field

.field protected final b:Ljava/lang/Object;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "TK;"
        }
    .end annotation
.end field

.field protected final c:Z

.field protected final d:Z

.field final synthetic e:Lorg/ardverk/collection/PatriciaTrie;


# direct methods
.method protected constructor <init>(Lorg/ardverk/collection/PatriciaTrie;Ljava/lang/Object;Ljava/lang/Object;)V
    .registers 10
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(TK;TK;)V"
        }
    .end annotation

    const/4 v3, 0x1

    const/4 v5, 0x0

    move-object v0, p0

    move-object v1, p1

    move-object v2, p2

    move-object v4, p3

    invoke-direct/range {v0 .. v5}, Lorg/ardverk/collection/PatriciaTrie$c;-><init>(Lorg/ardverk/collection/PatriciaTrie;Ljava/lang/Object;ZLjava/lang/Object;Z)V

    return-void
.end method

.method protected constructor <init>(Lorg/ardverk/collection/PatriciaTrie;Ljava/lang/Object;ZLjava/lang/Object;Z)V
    .registers 8
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(TK;ZTK;Z)V"
        }
    .end annotation

    iput-object p1, p0, Lorg/ardverk/collection/PatriciaTrie$c;->e:Lorg/ardverk/collection/PatriciaTrie;

    const/4 v0, 0x0

    invoke-direct {p0, p1, v0}, Lorg/ardverk/collection/PatriciaTrie$e;-><init>(Lorg/ardverk/collection/PatriciaTrie;Lorg/ardverk/collection/PatriciaTrie$1;)V

    if-nez p2, :cond_12

    if-nez p4, :cond_12

    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string v1, "must have a from or to!"

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

    throw v0

    :cond_12
    if-eqz p2, :cond_26

    if-eqz p4, :cond_26

    iget-object v0, p1, Lorg/ardverk/collection/PatriciaTrie;->keyAnalyzer:Ldxoptimizer/csm;

    invoke-interface {v0, p2, p4}, Ldxoptimizer/csm;->compare(Ljava/lang/Object;Ljava/lang/Object;)I

    move-result v0

    if-lez v0, :cond_26

    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string v1, "fromKey > toKey"

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

    throw v0

    :cond_26
    iput-object p2, p0, Lorg/ardverk/collection/PatriciaTrie$c;->a:Ljava/lang/Object;

    iput-boolean p3, p0, Lorg/ardverk/collection/PatriciaTrie$c;->c:Z

    iput-object p4, p0, Lorg/ardverk/collection/PatriciaTrie$c;->b:Ljava/lang/Object;

    iput-boolean p5, p0, Lorg/ardverk/collection/PatriciaTrie$c;->d:Z

    return-void
.end method


# virtual methods
.method protected a()Ljava/util/Set;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/Set",
            "<",
            "Ljava/util/Map$Entry",
            "<TK;TV;>;>;"
        }
    .end annotation

    new-instance v0, Lorg/ardverk/collection/PatriciaTrie$d;

    iget-object v1, p0, Lorg/ardverk/collection/PatriciaTrie$c;->e:Lorg/ardverk/collection/PatriciaTrie;

    invoke-direct {v0, v1, p0}, Lorg/ardverk/collection/PatriciaTrie$d;-><init>(Lorg/ardverk/collection/PatriciaTrie;Lorg/ardverk/collection/PatriciaTrie$e;)V

    return-object v0
.end method

.method protected a(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/SortedMap;
    .registers 11
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(TK;ZTK;Z)",
            "Ljava/util/SortedMap",
            "<TK;TV;>;"
        }
    .end annotation

    new-instance v0, Lorg/ardverk/collection/PatriciaTrie$c;

    iget-object v1, p0, Lorg/ardverk/collection/PatriciaTrie$c;->e:Lorg/ardverk/collection/PatriciaTrie;

    move-object v2, p1

    move v3, p2

    move-object v4, p3

    move v5, p4

    invoke-direct/range {v0 .. v5}, Lorg/ardverk/collection/PatriciaTrie$c;-><init>(Lorg/ardverk/collection/PatriciaTrie;Ljava/lang/Object;ZLjava/lang/Object;Z)V

    return-object v0
.end method

.method public b()Ljava/lang/Object;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()TK;"
        }
    .end annotation

    iget-object v0, p0, Lorg/ardverk/collection/PatriciaTrie$c;->a:Ljava/lang/Object;

    return-object v0
.end method

.method public c()Ljava/lang/Object;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()TK;"
        }
    .end annotation

    iget-object v0, p0, Lorg/ardverk/collection/PatriciaTrie$c;->b:Ljava/lang/Object;

    return-object v0
.end method

.method public d()Z
    .registers 2

    iget-boolean v0, p0, Lorg/ardverk/collection/PatriciaTrie$c;->c:Z

    return v0
.end method

.method public e()Z
    .registers 2

    iget-boolean v0, p0, Lorg/ardverk/collection/PatriciaTrie$c;->d:Z

    return v0
.end method

.method public firstKey()Ljava/lang/Object;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()TK;"
        }
    .end annotation

    iget-object v0, p0, Lorg/ardverk/collection/PatriciaTrie$c;->a:Ljava/lang/Object;

    if-nez v0, :cond_24

    iget-object v0, p0, Lorg/ardverk/collection/PatriciaTrie$c;->e:Lorg/ardverk/collection/PatriciaTrie;

    invoke-virtual {v0}, Lorg/ardverk/collection/PatriciaTrie;->firstEntry()Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;

    move-result-object v0

    move-object v1, v0

    :goto_b
    if-eqz v1, :cond_3c

    invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v0

    :goto_11
    if-eqz v1, :cond_1e

    iget-object v1, p0, Lorg/ardverk/collection/PatriciaTrie$c;->b:Ljava/lang/Object;

    if-eqz v1, :cond_3e

    const/4 v1, 0x0

    invoke-virtual {p0, v0, v1}, Lorg/ardverk/collection/PatriciaTrie$c;->b(Ljava/lang/Object;Z)Z

    move-result v1

    if-nez v1, :cond_3e

    :cond_1e
    new-instance v0, Ljava/util/NoSuchElementException;

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

    throw v0

    :cond_24
    iget-boolean v0, p0, Lorg/ardverk/collection/PatriciaTrie$c;->c:Z

    if-eqz v0, :cond_32

    iget-object v0, p0, Lorg/ardverk/collection/PatriciaTrie$c;->e:Lorg/ardverk/collection/PatriciaTrie;

    iget-object v1, p0, Lorg/ardverk/collection/PatriciaTrie$c;->a:Ljava/lang/Object;

    invoke-virtual {v0, v1}, Lorg/ardverk/collection/PatriciaTrie;->ceilingEntry(Ljava/lang/Object;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;

    move-result-object v0

    move-object v1, v0

    goto :goto_b

    :cond_32
    iget-object v0, p0, Lorg/ardverk/collection/PatriciaTrie$c;->e:Lorg/ardverk/collection/PatriciaTrie;

    iget-object v1, p0, Lorg/ardverk/collection/PatriciaTrie$c;->a:Ljava/lang/Object;

    # invokes: Lorg/ardverk/collection/PatriciaTrie;->higherEntry(Ljava/lang/Object;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
    invoke-static {v0, v1}, Lorg/ardverk/collection/PatriciaTrie;->access$200(Lorg/ardverk/collection/PatriciaTrie;Ljava/lang/Object;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;

    move-result-object v0

    move-object v1, v0

    goto :goto_b

    :cond_3c
    const/4 v0, 0x0

    goto :goto_11

    :cond_3e
    return-object v0
.end method

.method public lastKey()Ljava/lang/Object;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()TK;"
        }
    .end annotation

    iget-object v0, p0, Lorg/ardverk/collection/PatriciaTrie$c;->b:Ljava/lang/Object;

    if-nez v0, :cond_24

    iget-object v0, p0, Lorg/ardverk/collection/PatriciaTrie$c;->e:Lorg/ardverk/collection/PatriciaTrie;

    # invokes: Lorg/ardverk/collection/PatriciaTrie;->lastEntry()Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;
    invoke-static {v0}, Lorg/ardverk/collection/PatriciaTrie;->access$300(Lorg/ardverk/collection/PatriciaTrie;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;

    move-result-object v0

    move-object v1, v0

    :goto_b
    if-eqz v1, :cond_3c

    invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v0

    :goto_11
    if-eqz v1, :cond_1e

    iget-object v1, p0, Lorg/ardverk/collection/PatriciaTrie$c;->a:Ljava/lang/Object;

    if-eqz v1, :cond_3e

    const/4 v1, 0x0

    invoke-virtual {p0, v0, v1}, Lorg/ardverk/collection/PatriciaTrie$c;->a(Ljava/lang/Object;Z)Z

    move-result v1

    if-nez v1, :cond_3e

    :cond_1e
    new-instance v0, Ljava/util/NoSuchElementException;

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

    throw v0

    :cond_24
    iget-boolean v0, p0, Lorg/ardverk/collection/PatriciaTrie$c;->d:Z

    if-eqz v0, :cond_32

    iget-object v0, p0, Lorg/ardverk/collection/PatriciaTrie$c;->e:Lorg/ardverk/collection/PatriciaTrie;

    iget-object v1, p0, Lorg/ardverk/collection/PatriciaTrie$c;->b:Ljava/lang/Object;

    invoke-virtual {v0, v1}, Lorg/ardverk/collection/PatriciaTrie;->floorEntry(Ljava/lang/Object;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;

    move-result-object v0

    move-object v1, v0

    goto :goto_b

    :cond_32
    iget-object v0, p0, Lorg/ardverk/collection/PatriciaTrie$c;->e:Lorg/ardverk/collection/PatriciaTrie;

    iget-object v1, p0, Lorg/ardverk/collection/PatriciaTrie$c;->b:Ljava/lang/Object;

    invoke-virtual {v0, v1}, Lorg/ardverk/collection/PatriciaTrie;->lowerEntry(Ljava/lang/Object;)Lorg/ardverk/collection/AbstractPatriciaTrie$TrieEntry;

    move-result-object v0

    move-object v1, v0

    goto :goto_b

    :cond_3c
    const/4 v0, 0x0

    goto :goto_11

    :cond_3e
    return-object v0
.end method