Class InMemoryExpirableCache<K,V>

java.lang.Object
nablarch.core.cache.expirable.ExpirableCacheTemplate<K,V>
nablarch.core.cache.expirable.InMemoryExpirableCache<K,V>
Type Parameters:
K - キャッシュキーの型
V - キャッシュ値の型
All Implemented Interfaces:
ExpirableCache<K,V>
Direct Known Subclasses:
InMemoryResultSetCache

public class InMemoryExpirableCache<K,V> extends ExpirableCacheTemplate<K,V>
キャッシュをメモリ上に保持するExpirableCache実装クラス。
Author:
T.Kawasaki
  • Constructor Details

    • InMemoryExpirableCache

      public InMemoryExpirableCache()
  • Method Details

    • setCacheSize

      public void setCacheSize(int max)
      キャッシュ上限値を設定する。 ここで設定された件数を超過してキャッシュに値が設定された場合、 最も参照されていないエントリが削除される。
      Parameters:
      max - 上限値
    • createCacheContainer

      protected Map<K,Expirable<V>> createCacheContainer(int max)
      キャッシュの実体となるMapを生成する。 本クラスではLRUMapが使用される。 本メソッドをオーバライドすることで使用するMap実装を変更することができる。
      本クラスをスレッドセーフにするには、このメソッドが返却するMapインスタンスを スレッドセーフとしなければならない。
      Parameters:
      max - 最大上限件数
      Returns:
      キャッシュの実体となるMap
    • getFromCache

      protected Expirable<V> getFromCache(K key)
      キャッシュから値を取得する。
      Specified by:
      getFromCache in class ExpirableCacheTemplate<K,V>
      Parameters:
      key - キー
      Returns:
      キーに対応する値を格納したExpirable
    • removeFromCache

      protected Expirable<V> removeFromCache(K key)
      指定したキーに対応するエントリを削除する。
      Specified by:
      removeFromCache in class ExpirableCacheTemplate<K,V>
      Parameters:
      key - キー
      Returns:
      キーに対応する値を格納したExpirable
    • addToCache

      protected void addToCache(K key, Expirable<V> expirable)
      キャッシュに値を設定する。
      Specified by:
      addToCache in class ExpirableCacheTemplate<K,V>
      Parameters:
      key - キー
      expirable - 値を格納したExpirable
    • clearCache

      protected void clearCache()
      キャッシュの全エントリを削除する。
      Specified by:
      clearCache in class ExpirableCacheTemplate<K,V>