MapMaker.smali
.class public final Lcom/google/common/collect/MapMaker;
.super Lcom/google/common/collect/GenericMapMaker;
.source "MapMaker.java"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/collect/GenericMapMaker",
"<",
"Ljava/lang/Object;",
"Ljava/lang/Object;",
">;"
}
.end annotation
# instance fields
.field aWg:Z
.field aWh:I
.field aWi:Lcom/google/common/collect/MapMaker$RemovalCause;
.field concurrencyLevel:I
.field expireAfterAccessNanos:J
.field expireAfterWriteNanos:J
.field keyEquivalence:Lcom/google/common/base/Equivalence;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/common/base/Equivalence",
"<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field private keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
.field maximumSize:I
.field valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
# direct methods
.method public constructor <init>()V
.registers 5
.prologue
const-wide/16 v2, -0x1
const/4 v0, -0x1
.line 136
invoke-direct {p0}, Lcom/google/common/collect/GenericMapMaker;-><init>()V
.line 116
iput v0, p0, Lcom/google/common/collect/MapMaker;->aWh:I
.line 117
iput v0, p0, Lcom/google/common/collect/MapMaker;->concurrencyLevel:I
.line 118
iput v0, p0, Lcom/google/common/collect/MapMaker;->maximumSize:I
.line 123
iput-wide v2, p0, Lcom/google/common/collect/MapMaker;->expireAfterWriteNanos:J
.line 124
iput-wide v2, p0, Lcom/google/common/collect/MapMaker;->expireAfterAccessNanos:J
.line 136
return-void
.end method
# virtual methods
.method public final a(Lcom/google/common/collect/MapMakerInternalMap$Strength;)Lcom/google/common/collect/MapMaker;
.registers 8
.prologue
const/4 v2, 0x0
const/4 v1, 0x1
.line 269
iget-object v0, p0, Lcom/google/common/collect/MapMaker;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
if-nez v0, :cond_2d
move v0, v1
:goto_7
const-string v3, "Key strength was already set to %s"
new-array v4, v1, [Ljava/lang/Object;
iget-object v5, p0, Lcom/google/common/collect/MapMaker;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
aput-object v5, v4, v2
invoke-static {v0, v3, v4}, Lcom/google/common/base/n;->checkState(ZLjava/lang/String;[Ljava/lang/Object;)V
.line 270
invoke-static {p1}, Lcom/google/common/base/n;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/common/collect/MapMakerInternalMap$Strength;
iput-object v0, p0, Lcom/google/common/collect/MapMaker;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
.line 271
iget-object v0, p0, Lcom/google/common/collect/MapMaker;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
sget-object v3, Lcom/google/common/collect/MapMakerInternalMap$Strength;->SOFT:Lcom/google/common/collect/MapMakerInternalMap$Strength;
if-eq v0, v3, :cond_21
move v2, v1
:cond_21
const-string v0, "Soft keys are not supported"
invoke-static {v2, v0}, Lcom/google/common/base/n;->checkArgument(ZLjava/lang/Object;)V
.line 272
sget-object v0, Lcom/google/common/collect/MapMakerInternalMap$Strength;->STRONG:Lcom/google/common/collect/MapMakerInternalMap$Strength;
if-eq p1, v0, :cond_2c
.line 274
iput-boolean v1, p0, Lcom/google/common/collect/MapMaker;->aWg:Z
.line 276
:cond_2c
return-object p0
:cond_2d
move v0, v2
.line 269
goto :goto_7
.end method
.method final a(Lcom/google/common/base/g;)Ljava/util/concurrent/ConcurrentMap;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">(",
"Lcom/google/common/base/g",
"<-TK;+TV;>;)",
"Ljava/util/concurrent/ConcurrentMap",
"<TK;TV;>;"
}
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.prologue
.line 585
iget-object v0, p0, Lcom/google/common/collect/MapMaker;->aWi:Lcom/google/common/collect/MapMaker$RemovalCause;
if-nez v0, :cond_c
new-instance v0, Lcom/google/common/collect/MapMaker$ComputingMapAdapter;
invoke-direct {v0, p0, p1}, Lcom/google/common/collect/MapMaker$ComputingMapAdapter;-><init>(Lcom/google/common/collect/MapMaker;Lcom/google/common/base/g;)V
:goto_9
check-cast v0, Ljava/util/concurrent/ConcurrentMap;
return-object v0
:cond_c
new-instance v0, Lcom/google/common/collect/MapMaker$NullComputingConcurrentMap;
invoke-direct {v0, p0, p1}, Lcom/google/common/collect/MapMaker$NullComputingConcurrentMap;-><init>(Lcom/google/common/collect/MapMaker;Lcom/google/common/base/g;)V
goto :goto_9
.end method
.method final a(JLjava/util/concurrent/TimeUnit;)V
.registers 15
.prologue
const-wide/16 v8, -0x1
const/4 v1, 0x1
const/4 v2, 0x0
.line 391
iget-wide v4, p0, Lcom/google/common/collect/MapMaker;->expireAfterWriteNanos:J
cmp-long v0, v4, v8
if-nez v0, :cond_48
move v0, v1
:goto_b
const-string v3, "expireAfterWrite was already set to %s ns"
new-array v4, v1, [Ljava/lang/Object;
iget-wide v6, p0, Lcom/google/common/collect/MapMaker;->expireAfterWriteNanos:J
invoke-static {v6, v7}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v5
aput-object v5, v4, v2
invoke-static {v0, v3, v4}, Lcom/google/common/base/n;->checkState(ZLjava/lang/String;[Ljava/lang/Object;)V
.line 393
iget-wide v4, p0, Lcom/google/common/collect/MapMaker;->expireAfterAccessNanos:J
cmp-long v0, v4, v8
if-nez v0, :cond_4a
move v0, v1
:goto_21
const-string v3, "expireAfterAccess was already set to %s ns"
new-array v4, v1, [Ljava/lang/Object;
iget-wide v6, p0, Lcom/google/common/collect/MapMaker;->expireAfterAccessNanos:J
invoke-static {v6, v7}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v5
aput-object v5, v4, v2
invoke-static {v0, v3, v4}, Lcom/google/common/base/n;->checkState(ZLjava/lang/String;[Ljava/lang/Object;)V
.line 395
const-wide/16 v4, 0x0
cmp-long v0, p1, v4
if-ltz v0, :cond_4c
move v0, v1
:goto_37
const-string v3, "duration cannot be negative: %s %s"
const/4 v4, 0x2
new-array v4, v4, [Ljava/lang/Object;
invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v5
aput-object v5, v4, v2
aput-object p3, v4, v1
invoke-static {v0, v3, v4}, Lcom/google/common/base/n;->checkArgument(ZLjava/lang/String;[Ljava/lang/Object;)V
.line 396
return-void
:cond_48
move v0, v2
.line 391
goto :goto_b
:cond_4a
move v0, v2
.line 393
goto :goto_21
:cond_4c
move v0, v2
.line 395
goto :goto_37
.end method
.method public final toString()Ljava/lang/String;
.registers 9
.prologue
const-wide/16 v6, -0x1
const/16 v5, 0x16
const/4 v3, -0x1
.line 596
invoke-static {p0}, Lcom/google/common/base/j;->R(Ljava/lang/Object;)Lcom/google/common/base/k;
move-result-object v0
.line 597
iget v1, p0, Lcom/google/common/collect/MapMaker;->aWh:I
if-eq v1, v3, :cond_14
.line 598
const-string v1, "initialCapacity"
iget v2, p0, Lcom/google/common/collect/MapMaker;->aWh:I
invoke-virtual {v0, v1, v2}, Lcom/google/common/base/k;->i(Ljava/lang/String;I)Lcom/google/common/base/k;
.line 600
:cond_14
iget v1, p0, Lcom/google/common/collect/MapMaker;->concurrencyLevel:I
if-eq v1, v3, :cond_1f
.line 601
const-string v1, "concurrencyLevel"
iget v2, p0, Lcom/google/common/collect/MapMaker;->concurrencyLevel:I
invoke-virtual {v0, v1, v2}, Lcom/google/common/base/k;->i(Ljava/lang/String;I)Lcom/google/common/base/k;
.line 603
:cond_1f
iget v1, p0, Lcom/google/common/collect/MapMaker;->maximumSize:I
if-eq v1, v3, :cond_2a
.line 604
const-string v1, "maximumSize"
iget v2, p0, Lcom/google/common/collect/MapMaker;->maximumSize:I
invoke-virtual {v0, v1, v2}, Lcom/google/common/base/k;->i(Ljava/lang/String;I)Lcom/google/common/base/k;
.line 606
:cond_2a
iget-wide v2, p0, Lcom/google/common/collect/MapMaker;->expireAfterWriteNanos:J
cmp-long v1, v2, v6
if-eqz v1, :cond_4a
.line 607
const-string v1, "expireAfterWrite"
iget-wide v2, p0, Lcom/google/common/collect/MapMaker;->expireAfterWriteNanos:J
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(I)V
invoke-virtual {v4, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, "ns"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
.line 1185
invoke-virtual {v0, v1, v2}, Lcom/google/common/base/k;->a(Ljava/lang/String;Ljava/lang/Object;)Lcom/google/common/base/k;
.line 609
:cond_4a
iget-wide v2, p0, Lcom/google/common/collect/MapMaker;->expireAfterAccessNanos:J
cmp-long v1, v2, v6
if-eqz v1, :cond_6a
.line 610
const-string v1, "expireAfterAccess"
iget-wide v2, p0, Lcom/google/common/collect/MapMaker;->expireAfterAccessNanos:J
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(I)V
invoke-virtual {v4, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, "ns"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
.line 2185
invoke-virtual {v0, v1, v2}, Lcom/google/common/base/k;->a(Ljava/lang/String;Ljava/lang/Object;)Lcom/google/common/base/k;
.line 612
:cond_6a
iget-object v1, p0, Lcom/google/common/collect/MapMaker;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
if-eqz v1, :cond_7d
.line 613
const-string v1, "keyStrength"
iget-object v2, p0, Lcom/google/common/collect/MapMaker;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
invoke-virtual {v2}, Lcom/google/common/collect/MapMakerInternalMap$Strength;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Lcom/google/common/base/a;->toLowerCase(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
.line 3185
invoke-virtual {v0, v1, v2}, Lcom/google/common/base/k;->a(Ljava/lang/String;Ljava/lang/Object;)Lcom/google/common/base/k;
.line 615
:cond_7d
iget-object v1, p0, Lcom/google/common/collect/MapMaker;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
if-eqz v1, :cond_90
.line 616
const-string v1, "valueStrength"
iget-object v2, p0, Lcom/google/common/collect/MapMaker;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
invoke-virtual {v2}, Lcom/google/common/collect/MapMakerInternalMap$Strength;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Lcom/google/common/base/a;->toLowerCase(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
.line 4185
invoke-virtual {v0, v1, v2}, Lcom/google/common/base/k;->a(Ljava/lang/String;Ljava/lang/Object;)Lcom/google/common/base/k;
.line 618
:cond_90
iget-object v1, p0, Lcom/google/common/collect/MapMaker;->keyEquivalence:Lcom/google/common/base/Equivalence;
if-eqz v1, :cond_99
.line 619
const-string v1, "keyEquivalence"
invoke-virtual {v0, v1}, Lcom/google/common/base/k;->S(Ljava/lang/Object;)Lcom/google/common/base/k;
.line 621
:cond_99
iget-object v1, p0, Lcom/google/common/collect/MapMaker;->removalListener:Lcom/google/common/collect/bc;
if-eqz v1, :cond_a2
.line 622
const-string v1, "removalListener"
invoke-virtual {v0, v1}, Lcom/google/common/base/k;->S(Ljava/lang/Object;)Lcom/google/common/base/k;
.line 624
:cond_a2
invoke-virtual {v0}, Lcom/google/common/base/k;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method final xu()I
.registers 3
.prologue
.line 178
iget v0, p0, Lcom/google/common/collect/MapMaker;->aWh:I
const/4 v1, -0x1
if-ne v0, v1, :cond_8
const/16 v0, 0x10
:goto_7
return v0
:cond_8
iget v0, p0, Lcom/google/common/collect/MapMaker;->aWh:I
goto :goto_7
.end method
.method final xv()I
.registers 3
.prologue
.line 248
iget v0, p0, Lcom/google/common/collect/MapMaker;->concurrencyLevel:I
const/4 v1, -0x1
if-ne v0, v1, :cond_7
const/4 v0, 0x4
:goto_6
return v0
:cond_7
iget v0, p0, Lcom/google/common/collect/MapMaker;->concurrencyLevel:I
goto :goto_6
.end method
.method final xw()Lcom/google/common/collect/MapMakerInternalMap$Strength;
.registers 3
.prologue
.line 280
iget-object v0, p0, Lcom/google/common/collect/MapMaker;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;
sget-object v1, Lcom/google/common/collect/MapMakerInternalMap$Strength;->STRONG:Lcom/google/common/collect/MapMakerInternalMap$Strength;
invoke-static {v0, v1}, Lcom/google/common/base/j;->d(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/common/collect/MapMakerInternalMap$Strength;
return-object v0
.end method
.method public final xx()Ljava/util/concurrent/ConcurrentMap;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">()",
"Ljava/util/concurrent/ConcurrentMap",
"<TK;TV;>;"
}
.end annotation
.prologue
.line 506
iget-boolean v0, p0, Lcom/google/common/collect/MapMaker;->aWg:Z
if-nez v0, :cond_14
.line 507
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-virtual {p0}, Lcom/google/common/collect/MapMaker;->xu()I
move-result v1
const/high16 v2, 0x3f400000 # 0.75f
invoke-virtual {p0}, Lcom/google/common/collect/MapMaker;->xv()I
move-result v3
invoke-direct {v0, v1, v2, v3}, Ljava/util/concurrent/ConcurrentHashMap;-><init>(IFI)V
.line 509
:goto_13
return-object v0
:cond_14
iget-object v0, p0, Lcom/google/common/collect/MapMaker;->aWi:Lcom/google/common/collect/MapMaker$RemovalCause;
if-nez v0, :cond_20
new-instance v0, Lcom/google/common/collect/MapMakerInternalMap;
invoke-direct {v0, p0}, Lcom/google/common/collect/MapMakerInternalMap;-><init>(Lcom/google/common/collect/MapMaker;)V
:goto_1d
check-cast v0, Ljava/util/concurrent/ConcurrentMap;
goto :goto_13
:cond_20
new-instance v0, Lcom/google/common/collect/MapMaker$NullConcurrentMap;
invoke-direct {v0, p0}, Lcom/google/common/collect/MapMaker$NullConcurrentMap;-><init>(Lcom/google/common/collect/MapMaker;)V
goto :goto_1d
.end method