TransactionalMultiKeyHashMap.smali
.class Lorg/bitcoinj/store/TransactionalMultiKeyHashMap;
.super Ljava/lang/Object;
.source "MemoryFullPrunedBlockStore.java"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<UniqueKeyType:",
"Ljava/lang/Object;",
"MultiKeyType:",
"Ljava/lang/Object;",
"ValueType:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# instance fields
.field mapKeys:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap",
"<TMultiKeyType;",
"Ljava/util/Set",
"<TUniqueKeyType;>;>;"
}
.end annotation
.end field
.field mapValues:Lorg/bitcoinj/store/TransactionalHashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/bitcoinj/store/TransactionalHashMap",
"<TUniqueKeyType;TValueType;>;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.registers 2
.prologue
.line 184
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 185
new-instance v0, Lorg/bitcoinj/store/TransactionalHashMap;
invoke-direct {v0}, Lorg/bitcoinj/store/TransactionalHashMap;-><init>()V
iput-object v0, p0, Lorg/bitcoinj/store/TransactionalMultiKeyHashMap;->mapValues:Lorg/bitcoinj/store/TransactionalHashMap;
.line 186
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
iput-object v0, p0, Lorg/bitcoinj/store/TransactionalMultiKeyHashMap;->mapKeys:Ljava/util/HashMap;
.line 187
return-void
.end method
# virtual methods
.method public AbortTransaction()V
.registers 2
.prologue
.line 198
iget-object v0, p0, Lorg/bitcoinj/store/TransactionalMultiKeyHashMap;->mapValues:Lorg/bitcoinj/store/TransactionalHashMap;
invoke-virtual {v0}, Lorg/bitcoinj/store/TransactionalHashMap;->abortDatabaseBatchWrite()V
.line 199
return-void
.end method
.method public BeginTransaction()V
.registers 2
.prologue
.line 190
iget-object v0, p0, Lorg/bitcoinj/store/TransactionalMultiKeyHashMap;->mapValues:Lorg/bitcoinj/store/TransactionalHashMap;
invoke-virtual {v0}, Lorg/bitcoinj/store/TransactionalHashMap;->beginDatabaseBatchWrite()V
.line 191
return-void
.end method
.method public CommitTransaction()V
.registers 2
.prologue
.line 194
iget-object v0, p0, Lorg/bitcoinj/store/TransactionalMultiKeyHashMap;->mapValues:Lorg/bitcoinj/store/TransactionalHashMap;
invoke-virtual {v0}, Lorg/bitcoinj/store/TransactionalHashMap;->commitDatabaseBatchWrite()V
.line 195
return-void
.end method
.method public get(Ljava/lang/Object;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(TUniqueKeyType;)TValueType;"
}
.end annotation
.prologue
.line 203
iget-object v0, p0, Lorg/bitcoinj/store/TransactionalMultiKeyHashMap;->mapValues:Lorg/bitcoinj/store/TransactionalHashMap;
invoke-virtual {v0, p1}, Lorg/bitcoinj/store/TransactionalHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public put(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(TUniqueKeyType;TMultiKeyType;TValueType;)V"
}
.end annotation
.prologue
.line 207
iget-object v0, p0, Lorg/bitcoinj/store/TransactionalMultiKeyHashMap;->mapValues:Lorg/bitcoinj/store/TransactionalHashMap;
invoke-virtual {v0, p1, p3}, Lorg/bitcoinj/store/TransactionalHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)V
.line 208
iget-object v0, p0, Lorg/bitcoinj/store/TransactionalMultiKeyHashMap;->mapKeys:Ljava/util/HashMap;
invoke-virtual {v0, p2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Set;
.line 209
if-nez v0, :cond_1d
.line 210
new-instance v0, Ljava/util/HashSet;
invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
.line 211
invoke-interface {v0, p1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 212
iget-object v1, p0, Lorg/bitcoinj/store/TransactionalMultiKeyHashMap;->mapKeys:Ljava/util/HashMap;
invoke-virtual {v1, p2, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 216
:goto_1c
return-void
.line 214
:cond_1d
invoke-interface {v0, p1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
goto :goto_1c
.end method
.method public removeByMultiKey(Ljava/lang/Object;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(TMultiKeyType;)V"
}
.end annotation
.prologue
.line 224
iget-object v0, p0, Lorg/bitcoinj/store/TransactionalMultiKeyHashMap;->mapKeys:Ljava/util/HashMap;
invoke-virtual {v0, p1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Set;
.line 225
if-eqz v0, :cond_1c
.line 226
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_e
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_1c
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
.line 227
invoke-virtual {p0, v1}, Lorg/bitcoinj/store/TransactionalMultiKeyHashMap;->removeByUniqueKey(Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_e
.line 228
:cond_1c
return-void
.end method
.method public removeByUniqueKey(Ljava/lang/Object;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(TUniqueKeyType;)TValueType;"
}
.end annotation
.prologue
.line 220
iget-object v0, p0, Lorg/bitcoinj/store/TransactionalMultiKeyHashMap;->mapValues:Lorg/bitcoinj/store/TransactionalHashMap;
invoke-virtual {v0, p1}, Lorg/bitcoinj/store/TransactionalHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method