shohaku.core.collections.cache
クラス AbstractCache

java.lang.Object
  拡張shohaku.core.collections.cache.AbstractCache
すべての実装インタフェース:
Cache
直系の既知のサブクラス:
AccessOrderHashCache, InsertionOrderHashCache, WeakHashCache

public abstract class AbstractCache
extends java.lang.Object
implements Cache

このクラスは、Cache インタフェースのスケルトン実装を提供し、このインタフェースを実装するのに必要な作業量を最小限に抑えます。


コンストラクタの概要
protected AbstractCache(java.util.Map t, int maxSize, Cache initCache)
          マップ、最大キャッシュサイズ、初期化データを登録して初期化します。
 
メソッドの概要
 void clear()
          キャッシュをクリアします。
 boolean containsKey(java.lang.Object key)
          指定のキーが存在する場合は true を返却します。
 boolean containsValue(java.lang.Object value)
          指定のキャッシュデータが存在する場合は true を返却します。
 java.util.Set entrySet()
          キャッシュエントリのセットビューを返却します、要素は Map.Entry 型です。
 java.lang.Object get(java.lang.Object key)
          指定のキーに対応するキャッシュデータを返却します。
 FFactory getFactory()
          登録されている、生成ファンクタを返却します。
 int getMaxSize()
          最大キャッシュサイズを返却します。
 java.lang.Object getMutex()
          キャッシュをスレッドセーフに制御する同期を取る為の参照を返却します。
protected  java.util.Map getSourceMap()
          内部使用するマップの参照を返却します。
 boolean isEmpty()
          キャッシュが空の場合に true を返却します。
 boolean isLimit()
          キャッシュサイズが上限に達しているか検証します。
 java.util.Set keySet()
          キーのセットビューを返却します。
 java.lang.Object put(java.lang.Object key, java.lang.Object value)
          指定のキーとキャッシュデータを格納します。
 void putAll(Cache t)
          指定されたキャッシュのエントリを全て格納します。
 void putAll(java.util.Map t)
          指定されたマップのエントリをキャッシュエントリとして全て格納します。
 java.lang.Object remove(java.lang.Object key)
          指定のキーに対応するキャッシュエントリを削除してキャッシュデータを返却します。
 boolean resize(int newSize)
          指定のキャッシュ数にリサイズします。
 void setFactory(FFactory factory)
          指定のキーが存在しない場合にデータを生成する、生成ファンクタを登録します。
 void setMaxSize(int maxSize)
          最大キャッシュサイズを設定します。
 int size()
          現在のキャッシュサイズを返します。
 java.util.Collection values()
          キャッシュデータのコレクションビューを返却します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

AbstractCache

protected AbstractCache(java.util.Map t,
                        int maxSize,
                        Cache initCache)
マップ、最大キャッシュサイズ、初期化データを登録して初期化します。

パラメータ:
t - 基にする Map
maxSize - 最大キャッシュサイズ
initCache - 初期化データ、null の場合は無視される
メソッドの詳細

getMutex

public java.lang.Object getMutex()
インタフェース Cache の記述:
キャッシュをスレッドセーフに制御する同期を取る為の参照を返却します。
    Cache c = new Cache();

    synchronized(c.getMutex()) {  // Synchronizing mutex object!
        if(c.containsKey("name")){
            c.put("name", "Alexander");
        }
        ...
    }
 

定義:
インタフェース Cache 内の getMutex
戻り値:
キャッシュをスレッドセーフに制御する同期オブジェクト

size

public int size()
インタフェース Cache の記述:
現在のキャッシュサイズを返します。

定義:
インタフェース Cache 内の size
戻り値:
現在のキャッシュサイズ

clear

public void clear()
インタフェース Cache の記述:
キャッシュをクリアします。

定義:
インタフェース Cache 内の clear

getMaxSize

public int getMaxSize()
インタフェース Cache の記述:
最大キャッシュサイズを返却します。
maxSize が負数の場合は上限無しを示します。

定義:
インタフェース Cache 内の getMaxSize
戻り値:
最大キャッシュサイズ。

setMaxSize

public void setMaxSize(int maxSize)
インタフェース Cache の記述:
最大キャッシュサイズを設定します。
maxSize が上限無し(負数)以外で (maxSize < size()) の場合はリサイズを行います。

定義:
インタフェース Cache 内の setMaxSize
パラメータ:
maxSize - 最大キャッシュサイズ

isLimit

public boolean isLimit()
インタフェース Cache の記述:
キャッシュサイズが上限に達しているか検証します。

定義:
インタフェース Cache 内の isLimit
戻り値:
キャッシュサイズが上限に達している場合は true

resize

public boolean resize(int newSize)
インタフェース Cache の記述:
指定のキャッシュ数にリサイズします。
削除されるエントリの規準は実装に依存します。
実際には (newSize < size()) の場合はリサイズされます。
newSize が負数の場合は IllegalArgumentException を発生させます。

定義:
インタフェース Cache 内の resize
パラメータ:
newSize -
戻り値:
実際にリサイズされた場合は true

isEmpty

public boolean isEmpty()
インタフェース Cache の記述:
キャッシュが空の場合に true を返却します。

定義:
インタフェース Cache 内の isEmpty
戻り値:
キャッシュが空の場合に true

containsKey

public boolean containsKey(java.lang.Object key)
インタフェース Cache の記述:
指定のキーが存在する場合は true を返却します。

定義:
インタフェース Cache 内の containsKey
パラメータ:
key - 検証するキー
戻り値:
指定のキーが存在する場合は true

containsValue

public boolean containsValue(java.lang.Object value)
インタフェース Cache の記述:
指定のキャッシュデータが存在する場合は true を返却します。

定義:
インタフェース Cache 内の containsValue
パラメータ:
value - 検証するキャッシュデータ
戻り値:
指定のキャッシュデータが存在する場合は true

get

public java.lang.Object get(java.lang.Object key)
インタフェース Cache の記述:
指定のキーに対応するキャッシュデータを返却します。
キーが存在しない場合に生成ファンクタが登録されているならば生成ファンクタから生成して返却し、以外は null を返します。

定義:
インタフェース Cache 内の get
パラメータ:
key - キー
戻り値:
指定のキーに対応するキャッシュデータ

getFactory

public FFactory getFactory()
インタフェース Cache の記述:
登録されている、生成ファンクタを返却します。
登録されていない場合は null を返します

定義:
インタフェース Cache 内の getFactory
戻り値:
生成ファンクタ

setFactory

public void setFactory(FFactory factory)
インタフェース Cache の記述:
指定のキーが存在しない場合にデータを生成する、生成ファンクタを登録します。
生成ファンクタから生成されたデータは引数のキーでキャッシュされます。
FFactory.create(Object o) の引数にはキーが渡されます。

定義:
インタフェース Cache 内の setFactory
パラメータ:
factory - 生成ファンクタ

remove

public java.lang.Object remove(java.lang.Object key)
インタフェース Cache の記述:
指定のキーに対応するキャッシュエントリを削除してキャッシュデータを返却します。
キーが存在しない場合は null を返します。

定義:
インタフェース Cache 内の remove
パラメータ:
key - キー
戻り値:
削除されたキャッシュデータ、キーが存在しない場合は null

put

public java.lang.Object put(java.lang.Object key,
                            java.lang.Object value)
インタフェース Cache の記述:
指定のキーとキャッシュデータを格納します。
エントリが追加されると同時に (getMaxSize() < (size() + 1)) の場合はリサイズされます。
既にキーが存在する場合はそのキャッシュデータを上書きします。
上書きされた場合は元のキャッシュデータを返却します、以外は null を返却します。

定義:
インタフェース Cache 内の put
パラメータ:
key - キー
value - キャッシュデータ
戻り値:
上書きされた場合は元のキャッシュデータ、以外は null

putAll

public void putAll(Cache t)
インタフェース Cache の記述:
指定されたキャッシュのエントリを全て格納します。
エントリが追加されると同時に (getMaxSize() < (size() + 1)) の場合はリサイズされます。

定義:
インタフェース Cache 内の putAll
パラメータ:
t - キャッシュ

putAll

public void putAll(java.util.Map t)
インタフェース Cache の記述:
指定されたマップのエントリをキャッシュエントリとして全て格納します。
エントリが追加されると同時に (getMaxSize() < (size() + 1)) の場合はリサイズされます。

定義:
インタフェース Cache 内の putAll
パラメータ:
t - マップ

values

public java.util.Collection values()
インタフェース Cache の記述:
キャッシュデータのコレクションビューを返却します。
このビューのオペレーションは getMutex() のオブジェクトにより同期されます。

コレクションはキャッシュと連動しているので、キャッシュに対する変更はコレクションに反映され、また、コレクションに対する変更はキャッシュに反映されます。
コレクションに対する反復の処理中にキャッシュが変更された場合は、反復の結果は保証されません。
コレクションは、Iterator.remove、Collection.remove、removeAll、retainAll、および clear の各オペレーションを使って、
キャッシュから対応するマッピングを削除する要素削除処理をサポートします。
add オペレーションと addAll オペレーションは、コレクションではサポートされていません。

定義:
インタフェース Cache 内の values
戻り値:
キャッシュデータのコレクションビュー

keySet

public java.util.Set keySet()
インタフェース Cache の記述:
キーのセットビューを返却します。
このビューのオペレーションは getMutex() のオブジェクトにより同期されます。

セットはキャッシュと連動しているので、キャッシュに対する変更はセットに反映され、また、セットに対する変更はキャッシュに反映されます。
セットに対する反復の処理中にキャッシュが変更された場合は、反復の結果は保証されません。
セットは、Iterator.remove、Set.remove、removeAll、retainAll、および clear の各オペレーションを使って、
キャッシュから対応するマッピングを削除する要素削除処理をサポートします。
add オペレーションと addAll オペレーションは、セットではサポートされていません。

定義:
インタフェース Cache 内の keySet
戻り値:
キーのセットビュー

entrySet

public java.util.Set entrySet()
インタフェース Cache の記述:
キャッシュエントリのセットビューを返却します、要素は Map.Entry 型です。
このビューのオペレーションは getMutex() のオブジェクトにより同期されます。

セットはキャッシュと連動しているので、キャッシュに対する変更はセットに反映され、また、セットに対する変更はキャッシュに反映されます。
セットに対する反復の処理中にキャッシュが変更された場合は、反復の結果は保証されません。
セットは、Iterator.remove、Set.remove、removeAll、retainAll、および clear の各オペレーションを使って、
キャッシュから対応するマッピングを削除する要素削除処理をサポートします。
add オペレーションと addAll オペレーションは、セットではサポートされていません。

定義:
インタフェース Cache 内の entrySet
戻り値:
キャッシュデータのコレクションビュー

getSourceMap

protected java.util.Map getSourceMap()
内部使用するマップの参照を返却します。

戻り値:
マップ