Package com.twelvemonkeys.util
Class IgnoreCaseMap<V>
- java.lang.Object
-
- java.util.AbstractMap<K,V>
-
- com.twelvemonkeys.util.AbstractDecoratedMap<java.lang.String,V>
-
- com.twelvemonkeys.util.IgnoreCaseMap<V>
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable,java.util.Map<java.lang.String,V>
public class IgnoreCaseMap<V> extends AbstractDecoratedMap<java.lang.String,V> implements java.io.Serializable, java.lang.Cloneable
AMapdecorator that makes the mappings in the backing map case insensitive (this is implemented by converting all keys to uppercase), if the keys used areStrings. If the keys used are notStrings, it wil work as a normaljava.util.Map.- See Also:
Map, Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.twelvemonkeys.util.AbstractDecoratedMap
AbstractDecoratedMap.BasicEntry<K,V>, AbstractDecoratedMap.EntrySet, AbstractDecoratedMap.KeySet, AbstractDecoratedMap.Values
-
-
Field Summary
-
Fields inherited from class com.twelvemonkeys.util.AbstractDecoratedMap
entries, modCount
-
-
Constructor Summary
Constructors Constructor Description IgnoreCaseMap()Constructs a new emptyMap.IgnoreCaseMap(java.util.Map<java.lang.String,? extends V> pMap)Constructs a newMapwith the same key-value mappings as the givenMap.IgnoreCaseMap(java.util.Map pBacking, java.util.Map<java.lang.String,? extends V> pContents)Constructs a newMapwith the same key-value mappings as the givenMap.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancontainsKey(java.lang.Object pKey)Tests if the specified object is a key in this map.Vget(java.lang.Object pKey)Returns the value to which the specified key is mapped in this map.protected java.util.Iterator<java.util.Map.Entry<java.lang.String,V>>newEntryIterator()protected java.util.Iterator<java.lang.String>newKeyIterator()protected java.util.Iterator<V>newValueIterator()Vput(java.lang.String pKey, V pValue)Maps the specified key to the specified value in this map.Vremove(java.lang.Object pKey)Removes the key (and its corresponding value) from this map.protected static java.lang.ObjecttoUpper(java.lang.Object pObject)Converts the parameter to uppercase, if it's a String.private Vunwrap(java.util.Map.Entry<java.lang.String,V> pEntry)-
Methods inherited from class com.twelvemonkeys.util.AbstractDecoratedMap
clear, clone, containsValue, createEntry, entrySet, getEntry, init, isEmpty, keySet, removeEntry, size, values
-
-
-
-
Constructor Detail
-
IgnoreCaseMap
public IgnoreCaseMap()
Constructs a new emptyMap. The backing map will be aHashMap
-
IgnoreCaseMap
public IgnoreCaseMap(java.util.Map<java.lang.String,? extends V> pMap)
Constructs a newMapwith the same key-value mappings as the givenMap. The backing map will be aHashMapNOTE: As the keys in the given map parameter will be converted to uppercase (if they are strings), any duplicate key/value pair where
key instanceof String && key.equalsIgnoreCase(otherKey)is true, will be lost.- Parameters:
pMap- the map whose mappings are to be placed in this map.
-
IgnoreCaseMap
public IgnoreCaseMap(java.util.Map pBacking, java.util.Map<java.lang.String,? extends V> pContents)Constructs a newMapwith the same key-value mappings as the givenMap.NOTE: The backing map is structuraly cahnged, and it should NOT be accessed directly, after the wrapped map is created.
NOTE: As the keys in the given map parameter will be converted to uppercase (if they are strings), any duplicate key/value pair where
key instanceof String && key.equalsIgnoreCase(otherKey)is true, will be lost.- Parameters:
pBacking- the backing map of this map. Must be either empty, or the same map aspContents.pContents- the map whose mappings are to be placed in this map. May benull- Throws:
java.lang.IllegalArgumentException- ifpBackingisnulljava.lang.IllegalArgumentException- ifpBackingdiffers frompContentand is not empty.
-
-
Method Detail
-
put
public V put(java.lang.String pKey, V pValue)
Maps the specified key to the specified value in this map. Note: If the key used is a string, the key will not be case-sensitive.- Specified by:
putin interfacejava.util.Map<java.lang.String,V>- Specified by:
putin classAbstractDecoratedMap<java.lang.String,V>- Parameters:
pKey- the map key.pValue- the value.- Returns:
- the previous value of the specified key in this map, or null if it did not have one.
-
get
public V get(java.lang.Object pKey)
Returns the value to which the specified key is mapped in this map. Note: If the key used is a string, the key will not be case-sensitive.- Specified by:
getin interfacejava.util.Map<java.lang.String,V>- Specified by:
getin classAbstractDecoratedMap<java.lang.String,V>- Parameters:
pKey- a key in the map- Returns:
- the value to which the key is mapped in this map; null if the key is not mapped to any value in this map.
-
remove
public V remove(java.lang.Object pKey)
Removes the key (and its corresponding value) from this map. This method does nothing if the key is not in the map. Note: If the key used is a string, the key will not be case-sensitive.- Specified by:
removein interfacejava.util.Map<java.lang.String,V>- Specified by:
removein classAbstractDecoratedMap<java.lang.String,V>- Parameters:
pKey- the key that needs to be removed.- Returns:
- the value to which the key had been mapped in this map, or null if the key did not have a mapping.
-
containsKey
public boolean containsKey(java.lang.Object pKey)
Tests if the specified object is a key in this map. Note: If the key used is a string, the key will not be case-sensitive.- Specified by:
containsKeyin interfacejava.util.Map<java.lang.String,V>- Overrides:
containsKeyin classAbstractDecoratedMap<java.lang.String,V>- Parameters:
pKey- possible key.- Returns:
- true if and only if the specified object is a key in this map, as determined by the equals method; false otherwise.
-
toUpper
protected static java.lang.Object toUpper(java.lang.Object pObject)
Converts the parameter to uppercase, if it's a String.
-
newEntryIterator
protected java.util.Iterator<java.util.Map.Entry<java.lang.String,V>> newEntryIterator()
- Specified by:
newEntryIteratorin classAbstractDecoratedMap<java.lang.String,V>
-
newKeyIterator
protected java.util.Iterator<java.lang.String> newKeyIterator()
- Specified by:
newKeyIteratorin classAbstractDecoratedMap<java.lang.String,V>
-
newValueIterator
protected java.util.Iterator<V> newValueIterator()
- Specified by:
newValueIteratorin classAbstractDecoratedMap<java.lang.String,V>
-
-