public abstract class AbstractValueAdaptingCache extends ObjectSE implements Cache
null
値(および場合によっては他のそのような特別な値)を適応させる必要がある Cache
実装の共通基本クラス。null
値をサポートするように構成されている場合(isAllowNullValues()
で示されるように)、指定された null
ユーザー値を内部 NullValue.INSTANCE
で透過的に置き換えます。
Cache.ValueRetrievalException, Cache.ValueWrapper
修飾子 | コンストラクターと説明 |
---|---|
protected | AbstractValueAdaptingCache(boolean allowNullValues) 指定された設定で AbstractValueAdaptingCache を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
protected ObjectSE | fromStoreValue(ObjectSE storeValue) 指定された値を内部ストアから get メソッドから返されたユーザー値に変換します( null を適応)。 |
Cache.ValueWrapper | get(ObjectSE key) このキャッシュが指定されたキーをマップする値を返します。 |
<T> T | get(ObjectSE key, ClassSE<T> type) このキャッシュが指定されたキーをマップする値を返します。一般的に、戻り値がキャストされる型を指定します。 |
boolean | isAllowNullValues() このキャッシュで null 値が許可されているかどうかを返します。 |
protected abstract ObjectSE | lookup(ObjectSE key) 基になるストアで実際のルックアップを実行します。 |
protected ObjectSE | toStoreValue(ObjectSE userValue) put メソッドに渡された指定のユーザー値を内部ストアの値に変換します( null を適応)。 |
protected Cache.ValueWrapper | toValueWrapper(ObjectSE storeValue) 指定されたストア値を SimpleValueWrapper でラップします。これも fromStoreValue(java.lang.Object) 変換を行います。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
clear, evict, evictIfPresent, get, getName, getNativeCache, invalidate, put, putIfAbsent
protected AbstractValueAdaptingCache(boolean allowNullValues)
AbstractValueAdaptingCache
を作成します。allowNullValues
- null
値を許可するかどうか public final boolean isAllowNullValues()
null
値が許可されているかどうかを返します。@Nullable public Cache.ValueWrapper get(ObjectSE key)
Cache
キャッシュにこのキーのマッピングが含まれていない場合は、null
を返します。そうでない場合、キャッシュされた値(null
自体である可能性があります)が Cache.ValueWrapper
で返されます。
Cache
の get
key
- 関連する値が返されるキー Cache.ValueWrapper
内に含まれ、キャッシュされた null
値も保持する場合があります。返されるストレート null
は、キャッシュにこのキーのマッピングが含まれていないことを意味します。Cache.get(Object, Class)
, Cache.get(Object, Callable)
@Nullable public <T> T get(ObjectSE key, @Nullable ClassSE<T> type)
Cache
メモ: この get
のバリアントでは、キャッシュされた null
値とキャッシュエントリがまったく見つからないことを区別できません。代わりに、その目的のために標準の Cache.get(Object)
バリアントを使用してください。
Cache
の get
key
- 関連する値が返されるキー type
- 戻り値の必要な型 (型チェックをバイパスする null
の場合があります。キャッシュで null
値が見つかった場合、指定された型は無関係です)null
自体である場合があります)をマップする値、またはキャッシュにこのキーのマッピングが含まれていない場合は null
Cache.get(Object)
@Nullable protected abstract ObjectSE lookup(ObjectSE key)
key
- 関連する値が返されるキー null
@Nullable protected ObjectSE fromStoreValue(@Nullable ObjectSE storeValue)
null
を適応)。storeValue
- ストアの値 protected ObjectSE toStoreValue(@Nullable ObjectSE userValue)
null
を適応)。userValue
- 指定されたユーザー値 @Nullable protected Cache.ValueWrapper toValueWrapper(@Nullable ObjectSE storeValue)
SimpleValueWrapper
でラップします。これも fromStoreValue(java.lang.Object)
変換を行います。get(Object)
および Cache.putIfAbsent(Object, Object)
の実装に役立ちます。storeValue
- 元の値