MapMakerInternalMap$AbstractSerializationProxy.smali

.class abstract Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;
.super Lcom/google/common/collect/ag;
.source "MapMakerInternalMap.java"

# interfaces
.implements Ljava/io/Serializable;


# annotations
.annotation system Ldalvik/annotation/Signature;
    value = {
        "<K:",
        "Ljava/lang/Object;",
        "V:",
        "Ljava/lang/Object;",
        ">",
        "Lcom/google/common/collect/ag",
        "<TK;TV;>;",
        "Ljava/io/Serializable;"
    }
.end annotation


# static fields
.field private static final serialVersionUID:J = 0x3L


# instance fields
.field final concurrencyLevel:I

.field transient delegate:Ljava/util/concurrent/ConcurrentMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/concurrent/ConcurrentMap",
            "<TK;TV;>;"
        }
    .end annotation
.end field

.field final expireAfterAccessNanos:J

.field final expireAfterWriteNanos:J

.field final 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 final keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;

.field final maximumSize:I

.field final removalListener:Lcom/google/common/collect/bc;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lcom/google/common/collect/bc",
            "<-TK;-TV;>;"
        }
    .end annotation
.end field

.field final valueEquivalence:Lcom/google/common/base/Equivalence;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lcom/google/common/base/Equivalence",
            "<",
            "Ljava/lang/Object;",
            ">;"
        }
    .end annotation
.end field

.field final valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;


# direct methods
.method constructor <init>(Lcom/google/common/collect/MapMakerInternalMap$Strength;Lcom/google/common/collect/MapMakerInternalMap$Strength;Lcom/google/common/base/Equivalence;Lcom/google/common/base/Equivalence;JJIILcom/google/common/collect/bc;Ljava/util/concurrent/ConcurrentMap;)V
    .registers 14
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/google/common/collect/MapMakerInternalMap$Strength;",
            "Lcom/google/common/collect/MapMakerInternalMap$Strength;",
            "Lcom/google/common/base/Equivalence",
            "<",
            "Ljava/lang/Object;",
            ">;",
            "Lcom/google/common/base/Equivalence",
            "<",
            "Ljava/lang/Object;",
            ">;JJII",
            "Lcom/google/common/collect/bc",
            "<-TK;-TV;>;",
            "Ljava/util/concurrent/ConcurrentMap",
            "<TK;TV;>;)V"
        }
    .end annotation

    .prologue
    .line 3916
    invoke-direct {p0}, Lcom/google/common/collect/ag;-><init>()V

    .line 3917
    iput-object p1, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;

    .line 3918
    iput-object p2, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;

    .line 3919
    iput-object p3, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->keyEquivalence:Lcom/google/common/base/Equivalence;

    .line 3920
    iput-object p4, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->valueEquivalence:Lcom/google/common/base/Equivalence;

    .line 3921
    iput-wide p5, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->expireAfterWriteNanos:J

    .line 3922
    iput-wide p7, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->expireAfterAccessNanos:J

    .line 3923
    iput p9, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->maximumSize:I

    .line 3924
    iput p10, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->concurrencyLevel:I

    .line 3925
    iput-object p11, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->removalListener:Lcom/google/common/collect/bc;

    .line 3926
    iput-object p12, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->delegate:Ljava/util/concurrent/ConcurrentMap;

    .line 3927
    return-void
.end method


# virtual methods
.method protected bridge synthetic delegate()Ljava/lang/Object;
    .registers 2

    .prologue
    .line 3896
    invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->delegate()Ljava/util/concurrent/ConcurrentMap;

    move-result-object v0

    return-object v0
.end method

.method protected bridge synthetic delegate()Ljava/util/Map;
    .registers 2

    .prologue
    .line 3896
    invoke-virtual {p0}, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->delegate()Ljava/util/concurrent/ConcurrentMap;

    move-result-object v0

    return-object v0
.end method

.method protected delegate()Ljava/util/concurrent/ConcurrentMap;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/concurrent/ConcurrentMap",
            "<TK;TV;>;"
        }
    .end annotation

    .prologue
    .line 3931
    iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->delegate:Ljava/util/concurrent/ConcurrentMap;

    return-object v0
.end method

.method readEntries(Ljava/io/ObjectInputStream;)V
    .registers 5

    .prologue
    .line 3968
    :goto_0
    invoke-virtual {p1}, Ljava/io/ObjectInputStream;->readObject()Ljava/lang/Object;

    move-result-object v0

    .line 3969
    if-eqz v0, :cond_10

    .line 3972
    invoke-virtual {p1}, Ljava/io/ObjectInputStream;->readObject()Ljava/lang/Object;

    move-result-object v1

    .line 3973
    iget-object v2, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->delegate:Ljava/util/concurrent/ConcurrentMap;

    invoke-interface {v2, v0, v1}, Ljava/util/concurrent/ConcurrentMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_0

    .line 3975
    :cond_10
    return-void
.end method

.method readMapMaker(Ljava/io/ObjectInputStream;)Lcom/google/common/collect/MapMaker;
    .registers 14

    .prologue
    const-wide/16 v10, 0x0

    const/4 v8, -0x1

    const/4 v2, 0x0

    const/4 v1, 0x1

    .line 3945
    invoke-virtual {p1}, Ljava/io/ObjectInputStream;->readInt()I

    move-result v3

    .line 3946
    new-instance v4, Lcom/google/common/collect/MapMaker;

    invoke-direct {v4}, Lcom/google/common/collect/MapMaker;-><init>()V

    .line 4170
    iget v0, v4, Lcom/google/common/collect/MapMaker;->aWh:I

    if-ne v0, v8, :cond_10f

    move v0, v1

    :goto_13
    const-string v5, "initial capacity was already set to %s"

    new-array v6, v1, [Ljava/lang/Object;

    iget v7, v4, Lcom/google/common/collect/MapMaker;->aWh:I

    invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v7

    aput-object v7, v6, v2

    invoke-static {v0, v5, v6}, Lcom/google/common/base/n;->checkState(ZLjava/lang/String;[Ljava/lang/Object;)V

    .line 4172
    if-ltz v3, :cond_112

    move v0, v1

    :goto_25
    invoke-static {v0}, Lcom/google/common/base/n;->checkArgument(Z)V

    .line 4173
    iput v3, v4, Lcom/google/common/collect/MapMaker;->aWh:I

    .line 3946
    iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->keyStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;

    invoke-virtual {v4, v0}, Lcom/google/common/collect/MapMaker;->a(Lcom/google/common/collect/MapMakerInternalMap$Strength;)Lcom/google/common/collect/MapMaker;

    move-result-object v3

    iget-object v4, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;

    .line 4339
    iget-object v0, v3, Lcom/google/common/collect/MapMaker;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;

    if-nez v0, :cond_115

    move v0, v1

    :goto_37
    const-string v5, "Value strength was already set to %s"

    new-array v6, v1, [Ljava/lang/Object;

    iget-object v7, v3, Lcom/google/common/collect/MapMaker;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;

    aput-object v7, v6, v2

    invoke-static {v0, v5, v6}, Lcom/google/common/base/n;->checkState(ZLjava/lang/String;[Ljava/lang/Object;)V

    .line 4340
    invoke-static {v4}, 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, v3, Lcom/google/common/collect/MapMaker;->valueStrength:Lcom/google/common/collect/MapMakerInternalMap$Strength;

    .line 4341
    sget-object v0, Lcom/google/common/collect/MapMakerInternalMap$Strength;->STRONG:Lcom/google/common/collect/MapMakerInternalMap$Strength;

    if-eq v4, v0, :cond_50

    .line 4343
    iput-boolean v1, v3, Lcom/google/common/collect/MapMaker;->aWg:Z

    .line 3946
    :cond_50
    iget-object v4, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->keyEquivalence:Lcom/google/common/base/Equivalence;

    .line 5148
    iget-object v0, v3, Lcom/google/common/collect/MapMaker;->keyEquivalence:Lcom/google/common/base/Equivalence;

    if-nez v0, :cond_118

    move v0, v1

    :goto_57
    const-string v5, "key equivalence was already set to %s"

    new-array v6, v1, [Ljava/lang/Object;

    iget-object v7, v3, Lcom/google/common/collect/MapMaker;->keyEquivalence:Lcom/google/common/base/Equivalence;

    aput-object v7, v6, v2

    invoke-static {v0, v5, v6}, Lcom/google/common/base/n;->checkState(ZLjava/lang/String;[Ljava/lang/Object;)V

    .line 5149
    invoke-static {v4}, Lcom/google/common/base/n;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/google/common/base/Equivalence;

    iput-object v0, v3, Lcom/google/common/collect/MapMaker;->keyEquivalence:Lcom/google/common/base/Equivalence;

    .line 5150
    iput-boolean v1, v3, Lcom/google/common/collect/MapMaker;->aWg:Z

    .line 3946
    iget v4, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->concurrencyLevel:I

    .line 5240
    iget v0, v3, Lcom/google/common/collect/MapMaker;->concurrencyLevel:I

    if-ne v0, v8, :cond_11b

    move v0, v1

    :goto_73
    const-string v5, "concurrency level was already set to %s"

    new-array v6, v1, [Ljava/lang/Object;

    iget v7, v3, Lcom/google/common/collect/MapMaker;->concurrencyLevel:I

    invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v7

    aput-object v7, v6, v2

    invoke-static {v0, v5, v6}, Lcom/google/common/base/n;->checkState(ZLjava/lang/String;[Ljava/lang/Object;)V

    .line 5242
    if-lez v4, :cond_11e

    move v0, v1

    :goto_85
    invoke-static {v0}, Lcom/google/common/base/n;->checkArgument(Z)V

    .line 5243
    iput v4, v3, Lcom/google/common/collect/MapMaker;->concurrencyLevel:I

    .line 3952
    iget-object v4, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->removalListener:Lcom/google/common/collect/bc;

    .line 5482
    iget-object v0, v3, Lcom/google/common/collect/MapMaker;->removalListener:Lcom/google/common/collect/bc;

    if-nez v0, :cond_121

    move v0, v1

    :goto_91
    invoke-static {v0}, Lcom/google/common/base/n;->checkState(Z)V

    .line 5487
    invoke-static {v4}, Lcom/google/common/base/n;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/google/common/collect/bc;

    iput-object v0, v3, Lcom/google/common/collect/GenericMapMaker;->removalListener:Lcom/google/common/collect/bc;

    .line 5488
    iput-boolean v1, v3, Lcom/google/common/collect/MapMaker;->aWg:Z

    .line 3953
    iget-wide v4, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->expireAfterWriteNanos:J

    cmp-long v0, v4, v10

    if-lez v0, :cond_bf

    .line 3954
    iget-wide v4, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->expireAfterWriteNanos:J

    sget-object v0, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;

    .line 6380
    invoke-virtual {v3, v4, v5, v0}, Lcom/google/common/collect/MapMaker;->a(JLjava/util/concurrent/TimeUnit;)V

    .line 6381
    invoke-virtual {v0, v4, v5}, Ljava/util/concurrent/TimeUnit;->toNanos(J)J

    move-result-wide v6

    iput-wide v6, v3, Lcom/google/common/collect/MapMaker;->expireAfterWriteNanos:J

    .line 6382
    cmp-long v0, v4, v10

    if-nez v0, :cond_bd

    iget-object v0, v3, Lcom/google/common/collect/MapMaker;->aWi:Lcom/google/common/collect/MapMaker$RemovalCause;

    if-nez v0, :cond_bd

    .line 6384
    sget-object v0, Lcom/google/common/collect/MapMaker$RemovalCause;->EXPIRED:Lcom/google/common/collect/MapMaker$RemovalCause;

    iput-object v0, v3, Lcom/google/common/collect/MapMaker;->aWi:Lcom/google/common/collect/MapMaker$RemovalCause;

    .line 6386
    :cond_bd
    iput-boolean v1, v3, Lcom/google/common/collect/MapMaker;->aWg:Z

    .line 3956
    :cond_bf
    iget-wide v4, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->expireAfterAccessNanos:J

    cmp-long v0, v4, v10

    if-lez v0, :cond_e0

    .line 3957
    iget-wide v4, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->expireAfterAccessNanos:J

    sget-object v0, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;

    .line 6431
    invoke-virtual {v3, v4, v5, v0}, Lcom/google/common/collect/MapMaker;->a(JLjava/util/concurrent/TimeUnit;)V

    .line 6432
    invoke-virtual {v0, v4, v5}, Ljava/util/concurrent/TimeUnit;->toNanos(J)J

    move-result-wide v6

    iput-wide v6, v3, Lcom/google/common/collect/MapMaker;->expireAfterAccessNanos:J

    .line 6433
    cmp-long v0, v4, v10

    if-nez v0, :cond_de

    iget-object v0, v3, Lcom/google/common/collect/MapMaker;->aWi:Lcom/google/common/collect/MapMaker$RemovalCause;

    if-nez v0, :cond_de

    .line 6435
    sget-object v0, Lcom/google/common/collect/MapMaker$RemovalCause;->EXPIRED:Lcom/google/common/collect/MapMaker$RemovalCause;

    iput-object v0, v3, Lcom/google/common/collect/MapMaker;->aWi:Lcom/google/common/collect/MapMaker$RemovalCause;

    .line 6437
    :cond_de
    iput-boolean v1, v3, Lcom/google/common/collect/MapMaker;->aWg:Z

    .line 3959
    :cond_e0
    iget v0, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->maximumSize:I

    if-eq v0, v8, :cond_10e

    .line 3960
    iget v4, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->maximumSize:I

    .line 7207
    iget v0, v3, Lcom/google/common/collect/MapMaker;->maximumSize:I

    if-ne v0, v8, :cond_124

    move v0, v1

    :goto_eb
    const-string v5, "maximum size was already set to %s"

    new-array v6, v1, [Ljava/lang/Object;

    iget v7, v3, Lcom/google/common/collect/MapMaker;->maximumSize:I

    invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v7

    aput-object v7, v6, v2

    invoke-static {v0, v5, v6}, Lcom/google/common/base/n;->checkState(ZLjava/lang/String;[Ljava/lang/Object;)V

    .line 7209
    if-ltz v4, :cond_fd

    move v2, v1

    :cond_fd
    const-string v0, "maximum size must not be negative"

    invoke-static {v2, v0}, Lcom/google/common/base/n;->checkArgument(ZLjava/lang/Object;)V

    .line 7210
    iput v4, v3, Lcom/google/common/collect/MapMaker;->maximumSize:I

    .line 7211
    iput-boolean v1, v3, Lcom/google/common/collect/MapMaker;->aWg:Z

    .line 7212
    iget v0, v3, Lcom/google/common/collect/MapMaker;->maximumSize:I

    if-nez v0, :cond_10e

    .line 7214
    sget-object v0, Lcom/google/common/collect/MapMaker$RemovalCause;->SIZE:Lcom/google/common/collect/MapMaker$RemovalCause;

    iput-object v0, v3, Lcom/google/common/collect/MapMaker;->aWi:Lcom/google/common/collect/MapMaker$RemovalCause;

    .line 3962
    :cond_10e
    return-object v3

    :cond_10f
    move v0, v2

    .line 4170
    goto/16 :goto_13

    :cond_112
    move v0, v2

    .line 4172
    goto/16 :goto_25

    :cond_115
    move v0, v2

    .line 4339
    goto/16 :goto_37

    :cond_118
    move v0, v2

    .line 5148
    goto/16 :goto_57

    :cond_11b
    move v0, v2

    .line 5240
    goto/16 :goto_73

    :cond_11e
    move v0, v2

    .line 5242
    goto/16 :goto_85

    :cond_121
    move v0, v2

    .line 5482
    goto/16 :goto_91

    :cond_124
    move v0, v2

    .line 7207
    goto :goto_eb
.end method

.method writeMapTo(Ljava/io/ObjectOutputStream;)V
    .registers 5

    .prologue
    .line 3935
    iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->delegate:Ljava/util/concurrent/ConcurrentMap;

    invoke-interface {v0}, Ljava/util/concurrent/ConcurrentMap;->size()I

    move-result v0

    invoke-virtual {p1, v0}, Ljava/io/ObjectOutputStream;->writeInt(I)V

    .line 3936
    iget-object v0, p0, Lcom/google/common/collect/MapMakerInternalMap$AbstractSerializationProxy;->delegate:Ljava/util/concurrent/ConcurrentMap;

    invoke-interface {v0}, Ljava/util/concurrent/ConcurrentMap;->entrySet()Ljava/util/Set;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v1

    :goto_13
    invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_2e

    invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/Map$Entry;

    .line 3937
    invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v2

    invoke-virtual {p1, v2}, Ljava/io/ObjectOutputStream;->writeObject(Ljava/lang/Object;)V

    .line 3938
    invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;

    move-result-object v0

    invoke-virtual {p1, v0}, Ljava/io/ObjectOutputStream;->writeObject(Ljava/lang/Object;)V

    goto :goto_13

    .line 3940
    :cond_2e
    const/4 v0, 0x0

    invoke-virtual {p1, v0}, Ljava/io/ObjectOutputStream;->writeObject(Ljava/lang/Object;)V

    .line 3941
    return-void
.end method