You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
423 lines
12 KiB
423 lines
12 KiB
2 years ago
|
.class abstract Lcom/google/common/collect/RegularImmutableTable;
|
||
|
.super Lcom/google/common/collect/ImmutableTable;
|
||
|
.source "RegularImmutableTable.java"
|
||
|
|
||
|
|
||
|
# annotations
|
||
|
.annotation build Lcom/google/common/annotations/GwtCompatible;
|
||
|
.end annotation
|
||
|
|
||
|
.annotation system Ldalvik/annotation/MemberClasses;
|
||
|
value = {
|
||
|
Lcom/google/common/collect/RegularImmutableTable$Values;,
|
||
|
Lcom/google/common/collect/RegularImmutableTable$CellSet;
|
||
|
}
|
||
|
.end annotation
|
||
|
|
||
|
.annotation system Ldalvik/annotation/Signature;
|
||
|
value = {
|
||
|
"<R:",
|
||
|
"Ljava/lang/Object;",
|
||
|
"C:",
|
||
|
"Ljava/lang/Object;",
|
||
|
"V:",
|
||
|
"Ljava/lang/Object;",
|
||
|
">",
|
||
|
"Lcom/google/common/collect/ImmutableTable",
|
||
|
"<TR;TC;TV;>;"
|
||
|
}
|
||
|
.end annotation
|
||
|
|
||
|
|
||
|
# direct methods
|
||
|
.method constructor <init>()V
|
||
|
.locals 0
|
||
|
|
||
|
.prologue
|
||
|
.line 35
|
||
|
invoke-direct {p0}, Lcom/google/common/collect/ImmutableTable;-><init>()V
|
||
|
|
||
|
return-void
|
||
|
.end method
|
||
|
|
||
|
.method static forCells(Ljava/lang/Iterable;)Lcom/google/common/collect/RegularImmutableTable;
|
||
|
.locals 1
|
||
|
.annotation system Ldalvik/annotation/Signature;
|
||
|
value = {
|
||
|
"<R:",
|
||
|
"Ljava/lang/Object;",
|
||
|
"C:",
|
||
|
"Ljava/lang/Object;",
|
||
|
"V:",
|
||
|
"Ljava/lang/Object;",
|
||
|
">(",
|
||
|
"Ljava/lang/Iterable",
|
||
|
"<",
|
||
|
"Lcom/google/common/collect/Table$Cell",
|
||
|
"<TR;TC;TV;>;>;)",
|
||
|
"Lcom/google/common/collect/RegularImmutableTable",
|
||
|
"<TR;TC;TV;>;"
|
||
|
}
|
||
|
.end annotation
|
||
|
|
||
|
.prologue
|
||
|
const/4 v0, 0x0
|
||
|
|
||
|
.line 141
|
||
|
invoke-static {p0, v0, v0}, Lcom/google/common/collect/RegularImmutableTable;->forCellsInternal(Ljava/lang/Iterable;Ljava/util/Comparator;Ljava/util/Comparator;)Lcom/google/common/collect/RegularImmutableTable;
|
||
|
|
||
|
move-result-object v0
|
||
|
|
||
|
return-object v0
|
||
|
.end method
|
||
|
|
||
|
.method static forCells(Ljava/util/List;Ljava/util/Comparator;Ljava/util/Comparator;)Lcom/google/common/collect/RegularImmutableTable;
|
||
|
.locals 1
|
||
|
.param p1 # Ljava/util/Comparator;
|
||
|
.annotation runtime Ljavax/annotation/Nullable;
|
||
|
.end annotation
|
||
|
.end param
|
||
|
.param p2 # Ljava/util/Comparator;
|
||
|
.annotation runtime Ljavax/annotation/Nullable;
|
||
|
.end annotation
|
||
|
.end param
|
||
|
.annotation system Ldalvik/annotation/Signature;
|
||
|
value = {
|
||
|
"<R:",
|
||
|
"Ljava/lang/Object;",
|
||
|
"C:",
|
||
|
"Ljava/lang/Object;",
|
||
|
"V:",
|
||
|
"Ljava/lang/Object;",
|
||
|
">(",
|
||
|
"Ljava/util/List",
|
||
|
"<",
|
||
|
"Lcom/google/common/collect/Table$Cell",
|
||
|
"<TR;TC;TV;>;>;",
|
||
|
"Ljava/util/Comparator",
|
||
|
"<-TR;>;",
|
||
|
"Ljava/util/Comparator",
|
||
|
"<-TC;>;)",
|
||
|
"Lcom/google/common/collect/RegularImmutableTable",
|
||
|
"<TR;TC;TV;>;"
|
||
|
}
|
||
|
.end annotation
|
||
|
|
||
|
.prologue
|
||
|
.line 114
|
||
|
invoke-static {p0}, Lcom/google/common/base/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
|
||
|
|
||
|
.line 115
|
||
|
if-nez p1, :cond_0
|
||
|
|
||
|
if-eqz p2, :cond_1
|
||
|
|
||
|
.line 123
|
||
|
:cond_0
|
||
|
new-instance v0, Lcom/google/common/collect/RegularImmutableTable$1;
|
||
|
|
||
|
invoke-direct {v0, p1, p2}, Lcom/google/common/collect/RegularImmutableTable$1;-><init>(Ljava/util/Comparator;Ljava/util/Comparator;)V
|
||
|
|
||
|
.line 134
|
||
|
invoke-static {p0, v0}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
|
||
|
|
||
|
.line 136
|
||
|
:cond_1
|
||
|
invoke-static {p0, p1, p2}, Lcom/google/common/collect/RegularImmutableTable;->forCellsInternal(Ljava/lang/Iterable;Ljava/util/Comparator;Ljava/util/Comparator;)Lcom/google/common/collect/RegularImmutableTable;
|
||
|
|
||
|
move-result-object v0
|
||
|
|
||
|
return-object v0
|
||
|
.end method
|
||
|
|
||
|
.method private static final forCellsInternal(Ljava/lang/Iterable;Ljava/util/Comparator;Ljava/util/Comparator;)Lcom/google/common/collect/RegularImmutableTable;
|
||
|
.locals 10
|
||
|
.param p1 # Ljava/util/Comparator;
|
||
|
.annotation runtime Ljavax/annotation/Nullable;
|
||
|
.end annotation
|
||
|
.end param
|
||
|
.param p2 # Ljava/util/Comparator;
|
||
|
.annotation runtime Ljavax/annotation/Nullable;
|
||
|
.end annotation
|
||
|
.end param
|
||
|
.annotation system Ldalvik/annotation/Signature;
|
||
|
value = {
|
||
|
"<R:",
|
||
|
"Ljava/lang/Object;",
|
||
|
"C:",
|
||
|
"Ljava/lang/Object;",
|
||
|
"V:",
|
||
|
"Ljava/lang/Object;",
|
||
|
">(",
|
||
|
"Ljava/lang/Iterable",
|
||
|
"<",
|
||
|
"Lcom/google/common/collect/Table$Cell",
|
||
|
"<TR;TC;TV;>;>;",
|
||
|
"Ljava/util/Comparator",
|
||
|
"<-TR;>;",
|
||
|
"Ljava/util/Comparator",
|
||
|
"<-TC;>;)",
|
||
|
"Lcom/google/common/collect/RegularImmutableTable",
|
||
|
"<TR;TC;TV;>;"
|
||
|
}
|
||
|
.end annotation
|
||
|
|
||
|
.prologue
|
||
|
.line 152
|
||
|
invoke-static {}, Lcom/google/common/collect/ImmutableSet;->builder()Lcom/google/common/collect/ImmutableSet$Builder;
|
||
|
|
||
|
move-result-object v1
|
||
|
|
||
|
.line 153
|
||
|
invoke-static {}, Lcom/google/common/collect/ImmutableSet;->builder()Lcom/google/common/collect/ImmutableSet$Builder;
|
||
|
|
||
|
move-result-object v2
|
||
|
|
||
|
.line 154
|
||
|
invoke-static {p0}, Lcom/google/common/collect/ImmutableList;->copyOf(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList;
|
||
|
|
||
|
move-result-object v3
|
||
|
|
||
|
.line 155
|
||
|
invoke-virtual {v3}, Lcom/google/common/collect/ImmutableList;->iterator()Ljava/util/Iterator;
|
||
|
|
||
|
move-result-object v4
|
||
|
|
||
|
:goto_0
|
||
|
invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z
|
||
|
|
||
|
move-result v0
|
||
|
|
||
|
if-eqz v0, :cond_0
|
||
|
|
||
|
invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;
|
||
|
|
||
|
move-result-object v0
|
||
|
|
||
|
check-cast v0, Lcom/google/common/collect/Table$Cell;
|
||
|
|
||
|
.line 156
|
||
|
invoke-interface {v0}, Lcom/google/common/collect/Table$Cell;->getRowKey()Ljava/lang/Object;
|
||
|
|
||
|
move-result-object v5
|
||
|
|
||
|
invoke-virtual {v1, v5}, Lcom/google/common/collect/ImmutableSet$Builder;->add(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet$Builder;
|
||
|
|
||
|
.line 157
|
||
|
invoke-interface {v0}, Lcom/google/common/collect/Table$Cell;->getColumnKey()Ljava/lang/Object;
|
||
|
|
||
|
move-result-object v0
|
||
|
|
||
|
invoke-virtual {v2, v0}, Lcom/google/common/collect/ImmutableSet$Builder;->add(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet$Builder;
|
||
|
|
||
|
goto :goto_0
|
||
|
|
||
|
.line 160
|
||
|
:cond_0
|
||
|
invoke-virtual {v1}, Lcom/google/common/collect/ImmutableSet$Builder;->build()Lcom/google/common/collect/ImmutableSet;
|
||
|
|
||
|
move-result-object v0
|
||
|
|
||
|
.line 161
|
||
|
if-eqz p1, :cond_1
|
||
|
|
||
|
.line 162
|
||
|
invoke-static {v0}, Lcom/google/common/collect/Lists;->newArrayList(Ljava/lang/Iterable;)Ljava/util/ArrayList;
|
||
|
|
||
|
move-result-object v0
|
||
|
|
||
|
.line 163
|
||
|
invoke-static {v0, p1}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
|
||
|
|
||
|
.line 164
|
||
|
invoke-static {v0}, Lcom/google/common/collect/ImmutableSet;->copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableSet;
|
||
|
|
||
|
move-result-object v0
|
||
|
|
||
|
.line 166
|
||
|
:cond_1
|
||
|
invoke-virtual {v2}, Lcom/google/common/collect/ImmutableSet$Builder;->build()Lcom/google/common/collect/ImmutableSet;
|
||
|
|
||
|
move-result-object v1
|
||
|
|
||
|
.line 167
|
||
|
if-eqz p2, :cond_2
|
||
|
|
||
|
.line 168
|
||
|
invoke-static {v1}, Lcom/google/common/collect/Lists;->newArrayList(Ljava/lang/Iterable;)Ljava/util/ArrayList;
|
||
|
|
||
|
move-result-object v1
|
||
|
|
||
|
.line 169
|
||
|
invoke-static {v1, p2}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
|
||
|
|
||
|
.line 170
|
||
|
invoke-static {v1}, Lcom/google/common/collect/ImmutableSet;->copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableSet;
|
||
|
|
||
|
move-result-object v1
|
||
|
|
||
|
.line 175
|
||
|
:cond_2
|
||
|
invoke-virtual {v3}, Lcom/google/common/collect/ImmutableList;->size()I
|
||
|
|
||
|
move-result v2
|
||
|
|
||
|
int-to-long v4, v2
|
||
|
|
||
|
invoke-virtual {v0}, Lcom/google/common/collect/ImmutableSet;->size()I
|
||
|
|
||
|
move-result v2
|
||
|
|
||
|
int-to-long v6, v2
|
||
|
|
||
|
invoke-virtual {v1}, Lcom/google/common/collect/ImmutableSet;->size()I
|
||
|
|
||
|
move-result v2
|
||
|
|
||
|
int-to-long v8, v2
|
||
|
|
||
|
mul-long/2addr v6, v8
|
||
|
|
||
|
const-wide/16 v8, 0x2
|
||
|
|
||
|
div-long/2addr v6, v8
|
||
|
|
||
|
cmp-long v2, v4, v6
|
||
|
|
||
|
if-lez v2, :cond_3
|
||
|
|
||
|
new-instance v2, Lcom/google/common/collect/DenseImmutableTable;
|
||
|
|
||
|
invoke-direct {v2, v3, v0, v1}, Lcom/google/common/collect/DenseImmutableTable;-><init>(Lcom/google/common/collect/ImmutableList;Lcom/google/common/collect/ImmutableSet;Lcom/google/common/collect/ImmutableSet;)V
|
||
|
|
||
|
move-object v0, v2
|
||
|
|
||
|
:goto_1
|
||
|
return-object v0
|
||
|
|
||
|
:cond_3
|
||
|
new-instance v2, Lcom/google/common/collect/SparseImmutableTable;
|
||
|
|
||
|
invoke-direct {v2, v3, v0, v1}, Lcom/google/common/collect/SparseImmutableTable;-><init>(Lcom/google/common/collect/ImmutableList;Lcom/google/common/collect/ImmutableSet;Lcom/google/common/collect/ImmutableSet;)V
|
||
|
|
||
|
move-object v0, v2
|
||
|
|
||
|
goto :goto_1
|
||
|
.end method
|
||
|
|
||
|
|
||
|
# virtual methods
|
||
|
.method final createCellSet()Lcom/google/common/collect/ImmutableSet;
|
||
|
.locals 2
|
||
|
.annotation system Ldalvik/annotation/Signature;
|
||
|
value = {
|
||
|
"()",
|
||
|
"Lcom/google/common/collect/ImmutableSet",
|
||
|
"<",
|
||
|
"Lcom/google/common/collect/Table$Cell",
|
||
|
"<TR;TC;TV;>;>;"
|
||
|
}
|
||
|
.end annotation
|
||
|
|
||
|
.prologue
|
||
|
.line 41
|
||
|
invoke-virtual {p0}, Lcom/google/common/collect/RegularImmutableTable;->isEmpty()Z
|
||
|
|
||
|
move-result v0
|
||
|
|
||
|
if-eqz v0, :cond_0
|
||
|
|
||
|
invoke-static {}, Lcom/google/common/collect/ImmutableSet;->of()Lcom/google/common/collect/ImmutableSet;
|
||
|
|
||
|
move-result-object v0
|
||
|
|
||
|
:goto_0
|
||
|
return-object v0
|
||
|
|
||
|
:cond_0
|
||
|
new-instance v0, Lcom/google/common/collect/RegularImmutableTable$CellSet;
|
||
|
|
||
|
const/4 v1, 0x0
|
||
|
|
||
|
invoke-direct {v0, p0, v1}, Lcom/google/common/collect/RegularImmutableTable$CellSet;-><init>(Lcom/google/common/collect/RegularImmutableTable;Lcom/google/common/collect/RegularImmutableTable$1;)V
|
||
|
|
||
|
goto :goto_0
|
||
|
.end method
|
||
|
|
||
|
.method bridge synthetic createCellSet()Ljava/util/Set;
|
||
|
.locals 1
|
||
|
|
||
|
.prologue
|
||
|
.line 33
|
||
|
invoke-virtual {p0}, Lcom/google/common/collect/RegularImmutableTable;->createCellSet()Lcom/google/common/collect/ImmutableSet;
|
||
|
|
||
|
move-result-object v0
|
||
|
|
||
|
return-object v0
|
||
|
.end method
|
||
|
|
||
|
.method final createValues()Lcom/google/common/collect/ImmutableCollection;
|
||
|
.locals 2
|
||
|
.annotation system Ldalvik/annotation/Signature;
|
||
|
value = {
|
||
|
"()",
|
||
|
"Lcom/google/common/collect/ImmutableCollection",
|
||
|
"<TV;>;"
|
||
|
}
|
||
|
.end annotation
|
||
|
|
||
|
.prologue
|
||
|
.line 90
|
||
|
invoke-virtual {p0}, Lcom/google/common/collect/RegularImmutableTable;->isEmpty()Z
|
||
|
|
||
|
move-result v0
|
||
|
|
||
|
if-eqz v0, :cond_0
|
||
|
|
||
|
invoke-static {}, Lcom/google/common/collect/ImmutableList;->of()Lcom/google/common/collect/ImmutableList;
|
||
|
|
||
|
move-result-object v0
|
||
|
|
||
|
:goto_0
|
||
|
return-object v0
|
||
|
|
||
|
:cond_0
|
||
|
new-instance v0, Lcom/google/common/collect/RegularImmutableTable$Values;
|
||
|
|
||
|
const/4 v1, 0x0
|
||
|
|
||
|
invoke-direct {v0, p0, v1}, Lcom/google/common/collect/RegularImmutableTable$Values;-><init>(Lcom/google/common/collect/RegularImmutableTable;Lcom/google/common/collect/RegularImmutableTable$1;)V
|
||
|
|
||
|
goto :goto_0
|
||
|
.end method
|
||
|
|
||
|
.method bridge synthetic createValues()Ljava/util/Collection;
|
||
|
.locals 1
|
||
|
|
||
|
.prologue
|
||
|
.line 33
|
||
|
invoke-virtual {p0}, Lcom/google/common/collect/RegularImmutableTable;->createValues()Lcom/google/common/collect/ImmutableCollection;
|
||
|
|
||
|
move-result-object v0
|
||
|
|
||
|
return-object v0
|
||
|
.end method
|
||
|
|
||
|
.method abstract getCell(I)Lcom/google/common/collect/Table$Cell;
|
||
|
.annotation system Ldalvik/annotation/Signature;
|
||
|
value = {
|
||
|
"(I)",
|
||
|
"Lcom/google/common/collect/Table$Cell",
|
||
|
"<TR;TC;TV;>;"
|
||
|
}
|
||
|
.end annotation
|
||
|
.end method
|
||
|
|
||
|
.method abstract getValue(I)Ljava/lang/Object;
|
||
|
.annotation system Ldalvik/annotation/Signature;
|
||
|
value = {
|
||
|
"(I)TV;"
|
||
|
}
|
||
|
.end annotation
|
||
|
.end method
|