Package nablarch.core.util.map
Class MultipleKeyCaseMap<V>
- Type Parameters:
V
- 値の型
- Direct Known Subclasses:
DataRecord
,SqlRow
キーの大文字と小文字、アンダースコア(_)の有無を区別しないマップの実装クラス。
以下のメソッドは、キーの大文字と小文字、アンダースコアの有無を区別しない。
同一キーとみなす例
- 大文字小文字の区別はしない。(USER_NAMEとuser_nameは同一キーとみなす)
- アンダースコアの有無は区別しない。(USER_NAMEとuserNameは同一キーとみなす)
- Author:
- Kiyohito Itoh
-
Nested Class Summary
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K extends Object,
V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object, V extends Object> -
Constructor Summary
ConstructorDescriptionMultipleKeyCaseMap
のインスタンスを生成する。MultipleKeyCaseMap
(Map<String, V> map) map
を元に、MultipleKeyCaseMap
のインスタンスを生成する。map
とキー変換情報を元にMultipleKeyCaseMap
のインスタンスを生成する。コピーコンストラクタ。 -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addKeyConversion
(String key) 指定されたキー名に対するキー変換情報をキー変換情報マップに追加する。boolean
containsKey
(Object key) キー名の存在チェック。protected static <KEY,
VAL> Map<KEY, VAL> copyValueOf
(Map<KEY, VAL> original) 引数で与えられたMapをコピーする。指定されたキー名に対応する値を返却する。protected String
getActualDataKey
(String key) 指定されたキー名に対応する実データマップのキー名を取得する。このラッパーが処理を委譲するMap
オブジェクトを返す。void
Methods inherited from class nablarch.core.util.map.MapWrapper
clear, containsValue, entrySet, equals, getDelegateMapOfType, hashCode, isEmpty, keySet, remove, size, toString, values
Methods inherited from class java.util.AbstractMap
clone
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
-
Constructor Details
-
MultipleKeyCaseMap
MultipleKeyCaseMap
のインスタンスを生成する。 -
MultipleKeyCaseMap
map
を元に、MultipleKeyCaseMap
のインスタンスを生成する。 呼び出し側でキー変換情報をキャッシュ可能な場合は、 性能劣化を防ぐためにMultipleKeyCaseMap(Map, Map)
を使用すること。- Parameters:
map
- マップ
-
MultipleKeyCaseMap
map
とキー変換情報を元にMultipleKeyCaseMap
のインスタンスを生成する。呼び出し側でキー変換情報をキャッシュしている場合にこのコンストラクタを使用する。 キー変換情報マップのkeyとvalueは下記のとおり。 key: 実データマップキーの大文字を小文字にし、アンダースコアを削除した値 value: 実データマップキー キー変換情報マップを作成する際は、
StringUtil.lowerAndTrimUnderScore(String)
メソッドを使用してkeyの値を取得すること。 本コンストラクタを呼び出す場合は、引数のマップとキー変換情報の整合性が取れている必要がある。- Parameters:
map
- マップkeyNames
- キー変換情報
-
MultipleKeyCaseMap
コピーコンストラクタ。- Parameters:
orig
- コピー元となるMap
-
-
Method Details
-
copyValueOf
引数で与えられたMapをコピーする。- Type Parameters:
KEY
- キーの型VAL
- 値の型- Parameters:
original
- コピー元のMap- Returns:
- コピーされたMap
-
getDelegateMap
このラッパーが処理を委譲するMap
オブジェクトを返す。- Specified by:
getDelegateMap
in classMapWrapper<String,
V> - Returns:
- 処理を委譲するMapオブジェクト
-
put
MapWrapper.getDelegateMap()
が返すMap
オブジェクトに処理を委譲する。 -
putAll
MapWrapper.getDelegateMap()
が返すMap
オブジェクトに処理を委譲する。 -
containsKey
キー名の存在チェック。 指定されるキー名は、大文字小文字は区別しない。 また、アンダースコア(_)を含むキー名の場合には、アンダースコアを除去したキー名を指定してもよい。- Specified by:
containsKey
in interfaceMap<String,
V> - Overrides:
containsKey
in classMapWrapper<String,
V> - Parameters:
key
- キー名- Returns:
- 存在している場合は、true
-
get
指定されたキー名に対応する値を返却する。 指定されるキー名は、大文字小文字は区別しない。 また、アンダースコア(_)を含むキー名の場合には、アンダースコアを除去したキー名を指定してもよい。 -
addKeyConversion
指定されたキー名に対するキー変換情報をキー変換情報マップに追加する。キー変換情報マップに追加される内容は下記のとおり。 key: 指定されたキー名を指定して
StringUtil.lowerAndTrimUnderScore(String)
メソッドを呼び出した結果 value: 指定されたキー名- Parameters:
key
- キー名
-
getActualDataKey
指定されたキー名に対応する実データマップのキー名を取得する。性能劣化を防止するために、一度指定されたキー名はキャッシュする(=キー変換情報マップに追加する)。 これにより、次回同一キーが指定された場合にキャッシュから実データマップのキー名が取得できる。 このキャッシュにより、本オブジェクトが保持するキー変換情報マップは、
StringUtil.lowerAndTrimUnderScore(String)
が返す値だけでなく、 このメソッドで指定されたキー名と実データマップのキー名のペアも含まれる。- Parameters:
key
- キー名- Returns:
- 実データマップのキー名。存在しない場合はnull
-