今奥全景相机
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.

422 lines
12 KiB

.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