LRULinkedHashMap.smali
.class public Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;
.super Ljava/util/LinkedHashMap;
.source "LRULinkedHashMap.java"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">",
"Ljava/util/LinkedHashMap",
"<TK;TV;>;"
}
.end annotation
# static fields
.field private static final DEFAULT_LOAD_FACTOR:F = 0.75f
.field private static final serialVersionUID:J = 0x1ad6ac91942840b1L
# instance fields
.field private final lock:Ljava/util/concurrent/locks/Lock;
.field private final maxCapacity:I
# direct methods
.method public constructor <init>(I)V
.registers 4
.prologue
.line 31
const/high16 v0, 0x3f400000 # 0.75f
const/4 v1, 0x1
invoke-direct {p0, p1, v0, v1}, Ljava/util/LinkedHashMap;-><init>(IFZ)V
.line 28
new-instance v0, Ljava/util/concurrent/locks/ReentrantLock;
invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantLock;-><init>()V
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
.line 32
iput p1, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->maxCapacity:I
.line 33
return-void
.end method
# virtual methods
.method public clear()V
.registers 3
.prologue
.line 81
:try_start_0
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 82
invoke-super {p0}, Ljava/util/LinkedHashMap;->clear()V
:try_end_8
.catchall {:try_start_0 .. :try_end_8} :catchall_e
.line 84
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 86
return-void
.line 84
:catchall_e
move-exception v0
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
throw v0
.end method
.method public containsKey(Ljava/lang/Object;)Z
.registers 4
.prologue
.line 42
:try_start_0
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 43
invoke-super {p0, p1}, Ljava/util/LinkedHashMap;->containsKey(Ljava/lang/Object;)Z
:try_end_8
.catchall {:try_start_0 .. :try_end_8} :catchall_f
move-result v0
.line 45
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 43
return v0
.line 45
:catchall_f
move-exception v0
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
throw v0
.end method
.method public get(Ljava/lang/Object;)Ljava/lang/Object;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Object;",
")TV;"
}
.end annotation
.prologue
.line 53
:try_start_0
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 54
invoke-super {p0, p1}, Ljava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
:try_end_8
.catchall {:try_start_0 .. :try_end_8} :catchall_f
move-result-object v0
.line 56
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 54
return-object v0
.line 56
:catchall_f
move-exception v0
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
throw v0
.end method
.method public getAll()Ljava/util/Collection;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Collection",
"<",
"Ljava/util/Map$Entry",
"<TK;TV;>;>;"
}
.end annotation
.prologue
.line 90
:try_start_0
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 91
new-instance v0, Ljava/util/ArrayList;
invoke-super {p0}, Ljava/util/LinkedHashMap;->entrySet()Ljava/util/Set;
move-result-object v1
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
:try_end_e
.catchall {:try_start_0 .. :try_end_e} :catchall_14
.line 93
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 91
return-object v0
.line 93
:catchall_14
move-exception v0
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
throw v0
.end method
.method public put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;TV;)TV;"
}
.end annotation
.prologue
.line 63
:try_start_0
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 64
invoke-super {p0, p1, p2}, Ljava/util/LinkedHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_8
.catchall {:try_start_0 .. :try_end_8} :catchall_f
move-result-object v0
.line 66
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 64
return-object v0
.line 66
:catchall_f
move-exception v0
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
throw v0
.end method
.method protected removeEldestEntry(Ljava/util/Map$Entry;)Z
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map$Entry",
"<TK;TV;>;)Z"
}
.end annotation
.prologue
.line 37
invoke-virtual {p0}, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->size()I
move-result v0
iget v1, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->maxCapacity:I
if-le v0, v1, :cond_a
const/4 v0, 0x1
:goto_9
return v0
:cond_a
const/4 v0, 0x0
goto :goto_9
.end method
.method public size()I
.registers 3
.prologue
.line 72
:try_start_0
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 73
invoke-super {p0}, Ljava/util/LinkedHashMap;->size()I
:try_end_8
.catchall {:try_start_0 .. :try_end_8} :catchall_f
move-result v0
.line 75
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 73
return v0
.line 75
:catchall_f
move-exception v0
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/hash/LRULinkedHashMap;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
throw v0
.end method