woolpack.config
クラス CacheMap

java.lang.Object
  上位を拡張 woolpack.config.CacheMap
すべての実装されたインタフェース:
ConfigExpression
直系の既知のサブクラス:
LocaleCacheMap

public class CacheMap
extends java.lang.Object
implements ConfigExpression

MapをキャッシュするConfigExpression。 委譲先で生成されるMapgetCacheKey()で返されるキーに対して一意であることを想定しているため並行性制御を行っていない。 適用しているパターン:Proxy, Template Method。

作成者:
nakamura

コンストラクタの概要
CacheMap(java.util.Map<java.lang.Object,java.util.Map<java.lang.String,java.lang.Object>> cacheMap, ConfigExpression mapMaker)
          コンストラクタ。
 
メソッドの概要
 java.lang.Object getCacheKey()
          委譲先で生成するMapを一意に識別するためのキーを取得するためにinterpret(ConfigContext)から呼び出される(called)。
 void interpret(ConfigContext context)
          Mapを加工するために呼び出される(called)。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

CacheMap

public CacheMap(java.util.Map<java.lang.Object,java.util.Map<java.lang.String,java.lang.Object>> cacheMap,
                ConfigExpression mapMaker)
コンストラクタ。

パラメータ:
cacheMap - キャッシュ。本クラスはこの引数の状態を変化させる。null が指定された場合はキャッシュを行わない。LinkedHashMap.removeEldestEntry(java.util.Map.Entry)を指定したLinkedHashMapを指定するとキャッシュの容量を制御することができる。HashMapなどの強参照のMapを指定すると容量制限のないキャッシュになる。WeakHashMapを指定すると弱参照によるキャッシュになる。
mapMaker - Mapを生成し加工するための委譲先ConfigExpression
例外:
java.lang.NullPointerException - mapMaker が null の場合。
メソッドの詳細

interpret

public void interpret(ConfigContext context)
インタフェース ConfigExpression の記述:
Mapを加工するために呼び出される(called)。 実装クラスでは、引数が null でないことを前提としてよい。 実装クラスでRuntimeExceptionのサブ例外が発生する場合は JavaDoc コメントに記載すると部品の可用性が維持される。

定義:
インタフェース ConfigExpression 内の interpret
パラメータ:
context - コンテキスト。
例外:
NullPointerExcpeption - 引数が null の場合。

getCacheKey

public java.lang.Object getCacheKey()
委譲先で生成するMapを一意に識別するためのキーを取得するためにinterpret(ConfigContext)から呼び出される(called)。 デフォルトは常に同一のインスタンスを返す。 これはWeakHashMapが指定されていてもGCにより改修されないオブジェクトである。 Localeや端末ごとにMapをキャッシュする際にオーバライドする。 オーバライドする際はPutResourceBundle.getResourceBundle(String)と整合性を保つ必要がある。

戻り値:
委譲先で生成するMapを一意に識別するためのキー。


Copyright (C) 2006 Takahiro Nakamura. All rights reserved.