.class public Lcsdk/glucentralservices/kvstore/StringStore; .super Ljava/lang/Object; .source "SourceFile" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcsdk/glucentralservices/kvstore/StringStore$SetStringHandler; } .end annotation # static fields .field private static volatile sInstance:Lcsdk/glucentralservices/kvstore/StringStore; # instance fields .field private final mHandlers:Ljava/util/HashMap; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/HashMap<", "Ljava/lang/String;", "Lcsdk/glucentralservices/kvstore/StringStore$SetStringHandler;", ">;" } .end annotation .end field .field private mInitializedPlugins:Ljava/util/HashSet; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/HashSet<", "Ljava/lang/String;", ">;" } .end annotation .end field .field private mLock:Ljava/util/concurrent/locks/ReadWriteLock; .field private final mPluginNames:Ljava/util/HashSet; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/HashSet<", "Ljava/lang/String;", ">;" } .end annotation .end field .field private mStore:Ljava/util/HashMap; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/HashMap<", "Ljava/lang/String;", "Ljava/lang/String;", ">;" } .end annotation .end field # direct methods .method private constructor ()V .locals 1 .line 33 invoke-direct {p0}, Ljava/lang/Object;->()V .line 34 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V iput-object v0, p0, Lcsdk/glucentralservices/kvstore/StringStore;->mStore:Ljava/util/HashMap; .line 35 new-instance v0, Ljava/util/HashSet; invoke-direct {v0}, Ljava/util/HashSet;->()V iput-object v0, p0, Lcsdk/glucentralservices/kvstore/StringStore;->mInitializedPlugins:Ljava/util/HashSet; .line 36 new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock; invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->()V iput-object v0, p0, Lcsdk/glucentralservices/kvstore/StringStore;->mLock:Ljava/util/concurrent/locks/ReadWriteLock; .line 38 new-instance v0, Lcsdk/glucentralservices/kvstore/StringStore$1; invoke-direct {v0, p0}, Lcsdk/glucentralservices/kvstore/StringStore$1;->(Lcsdk/glucentralservices/kvstore/StringStore;)V iput-object v0, p0, Lcsdk/glucentralservices/kvstore/StringStore;->mPluginNames:Ljava/util/HashSet; .line 49 new-instance v0, Lcsdk/glucentralservices/kvstore/StringStore$2; invoke-direct {v0, p0}, Lcsdk/glucentralservices/kvstore/StringStore$2;->(Lcsdk/glucentralservices/kvstore/StringStore;)V iput-object v0, p0, Lcsdk/glucentralservices/kvstore/StringStore;->mHandlers:Ljava/util/HashMap; return-void .end method .method private static Instance()Lcsdk/glucentralservices/kvstore/StringStore; .locals 2 sget-object v0, Lcsdk/glucentralservices/kvstore/StringStore;->sInstance:Lcsdk/glucentralservices/kvstore/StringStore; if-nez v0, :cond_1 const-class v0, Lcsdk/glucentralservices/kvstore/StringStore; .line 25 monitor-enter v0 :try_start_0 sget-object v1, Lcsdk/glucentralservices/kvstore/StringStore;->sInstance:Lcsdk/glucentralservices/kvstore/StringStore; if-nez v1, :cond_0 .line 27 new-instance v1, Lcsdk/glucentralservices/kvstore/StringStore; invoke-direct {v1}, Lcsdk/glucentralservices/kvstore/StringStore;->()V sput-object v1, Lcsdk/glucentralservices/kvstore/StringStore;->sInstance:Lcsdk/glucentralservices/kvstore/StringStore; goto :goto_0 :catchall_0 move-exception v1 goto :goto_1 .line 28 :cond_0 :goto_0 monitor-exit v0 goto :goto_2 :goto_1 monitor-exit v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw v1 :cond_1 :goto_2 sget-object v0, Lcsdk/glucentralservices/kvstore/StringStore;->sInstance:Lcsdk/glucentralservices/kvstore/StringStore; return-object v0 .end method .method public static synthetic access$000(Lcsdk/glucentralservices/kvstore/StringStore;)Ljava/util/HashSet; .locals 0 .line 10 iget-object p0, p0, Lcsdk/glucentralservices/kvstore/StringStore;->mPluginNames:Ljava/util/HashSet; return-object p0 .end method .method public static synthetic access$100(Lcsdk/glucentralservices/kvstore/StringStore;)Ljava/util/HashSet; .locals 0 .line 10 iget-object p0, p0, Lcsdk/glucentralservices/kvstore/StringStore;->mInitializedPlugins:Ljava/util/HashSet; return-object p0 .end method .method public static synthetic access$200(Lcsdk/glucentralservices/kvstore/StringStore;)Ljava/util/HashMap; .locals 0 .line 10 iget-object p0, p0, Lcsdk/glucentralservices/kvstore/StringStore;->mStore:Ljava/util/HashMap; return-object p0 .end method .method public static get(Ljava/lang/String;)Ljava/lang/String; .locals 1 .line 105 invoke-static {}, Lcsdk/glucentralservices/kvstore/StringStore;->Instance()Lcsdk/glucentralservices/kvstore/StringStore; move-result-object v0 invoke-direct {v0, p0}, Lcsdk/glucentralservices/kvstore/StringStore;->getValue(Ljava/lang/String;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method private getValue(Ljava/lang/String;)Ljava/lang/String; .locals 1 iget-object v0, p0, Lcsdk/glucentralservices/kvstore/StringStore;->mLock:Ljava/util/concurrent/locks/ReadWriteLock; .line 86 invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock; move-result-object v0 invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V iget-object v0, p0, Lcsdk/glucentralservices/kvstore/StringStore;->mStore:Ljava/util/HashMap; .line 87 invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 check-cast p1, Ljava/lang/String; iget-object v0, p0, Lcsdk/glucentralservices/kvstore/StringStore;->mLock:Ljava/util/concurrent/locks/ReadWriteLock; .line 88 invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock; move-result-object v0 invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V return-object p1 .end method .method public static set(Ljava/lang/String;Ljava/lang/String;)V .locals 1 .line 109 invoke-static {}, Lcsdk/glucentralservices/kvstore/StringStore;->Instance()Lcsdk/glucentralservices/kvstore/StringStore; move-result-object v0 invoke-direct {v0, p0, p1}, Lcsdk/glucentralservices/kvstore/StringStore;->setKeyValue(Ljava/lang/String;Ljava/lang/String;)V return-void .end method .method private setKeyValue(Ljava/lang/String;Ljava/lang/String;)V .locals 1 iget-object v0, p0, Lcsdk/glucentralservices/kvstore/StringStore;->mLock:Ljava/util/concurrent/locks/ReadWriteLock; .line 95 invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock; move-result-object v0 invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V iget-object v0, p0, Lcsdk/glucentralservices/kvstore/StringStore;->mHandlers:Ljava/util/HashMap; .line 96 invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcsdk/glucentralservices/kvstore/StringStore$SetStringHandler; if-nez v0, :cond_0 iget-object v0, p0, Lcsdk/glucentralservices/kvstore/StringStore;->mStore:Ljava/util/HashMap; .line 98 invoke-virtual {v0, p1, p2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_0 .line 100 :cond_0 invoke-interface {v0, p2}, Lcsdk/glucentralservices/kvstore/StringStore$SetStringHandler;->process(Ljava/lang/String;)V :goto_0 iget-object p1, p0, Lcsdk/glucentralservices/kvstore/StringStore;->mLock:Ljava/util/concurrent/locks/ReadWriteLock; .line 101 invoke-interface {p1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock; move-result-object p1 invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void .end method