Class ExpirableCacheTemplate<K,V>

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

@Published(tag="architect") public abstract class ExpirableCacheTemplate<K,V> extends Object implements ExpirableCache<K,V>
有効期限付きキャッシュ(ExpirableCache)を実装するためのテンプレートクラス。 有効期限付きキャッシュの基本的な枠組みを提供する。 サブクラスにて、具体的な格納先(Map、KVS等)へのアクセス処理を実装する。
Author:
T.Kawasaki
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static final Date
    有効期限無しを表す日時
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(K key, V value, Date timeout)
    キャッシュに値を設定する。
    protected abstract void
    addToCache(K key, Expirable<V> expirable)
    キャッシュに値を設定する。
    void
    addUnlimited(K key, V value)
    キャッシュに有効期限無しで値を設定する。
    void
    キャッシュをクリアする。
    protected abstract void
    キャッシュの全エントリを削除する。
    protected abstract Expirable<V>
    キャッシュから値を取得する。
    キャッシュから値を取得する。 キャッシュに値が存在しない場合または有効期限切れの場合はnullを返却する。
    protected final Date
    現在日時を取得する。
    void
    remove(K key)
    キャッシュから値を削除する。
    protected abstract Expirable<V>
    指定したキーに対応するエントリを削除する。
    void
    キャッシュリスナークラスを設定する。 本インタフェース実装クラスは、各イベント発生時にこのリスナーをコールバックする。
    void
    システム日時提供クラスを取得する。

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • UNLIMITED

      protected static final Date UNLIMITED
      有効期限無しを表す日時
  • Constructor Details

    • ExpirableCacheTemplate

      public ExpirableCacheTemplate()
  • Method Details

    • getNowDate

      protected final Date getNowDate()
      現在日時を取得する。
      Returns:
      現在日時
    • getIfNotExpired

      public V getIfNotExpired(K key)
      キャッシュから値を取得する。 キャッシュに値が存在しない場合または有効期限切れの場合はnullを返却する。
      Specified by:
      getIfNotExpired in interface ExpirableCache<K,V>
      Parameters:
      key - キャッシュキー
      Returns:
      キャッシュされた値
    • add

      public void add(K key, V value, Date timeout)
      キャッシュに値を設定する。
      Specified by:
      add in interface ExpirableCache<K,V>
      Parameters:
      key - キャッシュキー
      value - キャッシュされる値
      timeout - 有効期限
    • addUnlimited

      public void addUnlimited(K key, V value)
      キャッシュに有効期限無しで値を設定する。
      Specified by:
      addUnlimited in interface ExpirableCache<K,V>
      Parameters:
      key - キャッシュキー
      value - キャッシュされる値
    • remove

      public void remove(K key)
      キャッシュから値を削除する。
      Specified by:
      remove in interface ExpirableCache<K,V>
      Parameters:
      key - 削除対象キャッシュキー
    • clear

      public void clear()
      キャッシュをクリアする。
      Specified by:
      clear in interface ExpirableCache<K,V>
    • setCacheListener

      public void setCacheListener(ExpirableCacheListener<K> listener)
      キャッシュリスナークラスを設定する。 本インタフェース実装クラスは、各イベント発生時にこのリスナーをコールバックする。
      Specified by:
      setCacheListener in interface ExpirableCache<K,V>
      Parameters:
      listener - リスナークラス。
    • getFromCache

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

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

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

      protected abstract void clearCache()
      キャッシュの全エントリを削除する。
    • setSystemTimeProvider

      public void setSystemTimeProvider(SystemTimeProvider systemTimeProvider)
      システム日時提供クラスを取得する。
      Parameters:
      systemTimeProvider - システム日時提供クラス