Package org.apache.commons.dbutils
Class BasicRowProcessor.CaseInsensitiveHashMap
- java.lang.Object
-
- java.util.AbstractMap<K,V>
-
- java.util.HashMap<K,V>
-
- java.util.LinkedHashMap<java.lang.String,java.lang.Object>
-
- org.apache.commons.dbutils.BasicRowProcessor.CaseInsensitiveHashMap
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable,java.util.Map<java.lang.String,java.lang.Object>
- Enclosing class:
- BasicRowProcessor
private static final class BasicRowProcessor.CaseInsensitiveHashMap extends java.util.LinkedHashMap<java.lang.String,java.lang.Object>A Map that converts all keys to lowercase Strings for case insensitive lookups. This is needed for the toMap() implementation because databases don't consistently handle the casing of column names.The keys are stored as they are given [BUG #DBUTILS-34], so we maintain an internal mapping from lowercase keys to the real keys in order to achieve the case insensitive lookup.
Note: This implementation does not allow
nullfor key, whereasLinkedHashMapdoes, because of the code:key.toString().toLowerCase()
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.String,java.lang.String>lowerCaseMapThe internal mapping from lowercase keys to the real keys.private static longserialVersionUIDRequired for serialization support.
-
Constructor Summary
Constructors Modifier Constructor Description privateCaseInsensitiveHashMap(int initialCapacity)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancontainsKey(java.lang.Object key)java.lang.Objectget(java.lang.Object key)java.lang.Objectput(java.lang.String key, java.lang.Object value)voidputAll(java.util.Map<? extends java.lang.String,?> m)java.lang.Objectremove(java.lang.Object key)-
Methods inherited from class java.util.LinkedHashMap
clear, containsValue, entrySet, forEach, getOrDefault, keySet, removeEldestEntry, replaceAll, values
-
Methods inherited from class java.util.HashMap
clone, compute, computeIfAbsent, computeIfPresent, isEmpty, merge, putIfAbsent, remove, replace, replace, size
-
-
-
-
Field Detail
-
lowerCaseMap
private final java.util.Map<java.lang.String,java.lang.String> lowerCaseMap
The internal mapping from lowercase keys to the real keys.Any query operation using the key (
get(Object),containsKey(Object)) is done in three steps:- convert the parameter key to lower case
- get the actual key that corresponds to the lower case key
- query the map with the actual key
-
serialVersionUID
private static final long serialVersionUID
Required for serialization support.- See Also:
Serializable, Constant Field Values
-
-
Method Detail
-
containsKey
public boolean containsKey(java.lang.Object key)
- Specified by:
containsKeyin interfacejava.util.Map<java.lang.String,java.lang.Object>- Overrides:
containsKeyin classjava.util.HashMap<java.lang.String,java.lang.Object>
-
get
public java.lang.Object get(java.lang.Object key)
- Specified by:
getin interfacejava.util.Map<java.lang.String,java.lang.Object>- Overrides:
getin classjava.util.LinkedHashMap<java.lang.String,java.lang.Object>
-
put
public java.lang.Object put(java.lang.String key, java.lang.Object value)- Specified by:
putin interfacejava.util.Map<java.lang.String,java.lang.Object>- Overrides:
putin classjava.util.HashMap<java.lang.String,java.lang.Object>
-
putAll
public void putAll(java.util.Map<? extends java.lang.String,?> m)
- Specified by:
putAllin interfacejava.util.Map<java.lang.String,java.lang.Object>- Overrides:
putAllin classjava.util.HashMap<java.lang.String,java.lang.Object>
-
remove
public java.lang.Object remove(java.lang.Object key)
- Specified by:
removein interfacejava.util.Map<java.lang.String,java.lang.Object>- Overrides:
removein classjava.util.HashMap<java.lang.String,java.lang.Object>
-
-