com.mockrunner.util.common
Class CaseAwareMap
java.lang.Object
com.mockrunner.util.common.CaseAwareMap
- All Implemented Interfaces:
- java.util.Map
public class CaseAwareMap
- extends java.lang.Object
- implements java.util.Map
Implementation of a Map that recognizes the case of the
keys, if the keys are strings. If isCaseSensitive is
true it behaves exactly like a HashMap.
If isCaseSensitive is false (which is the
default), it considers same strings with different case as equal.
I.e. if you do
put("test", "1");
put("TEST", "2");
the second put overwrites the value of the first one,
because the keys are considered to be equal. With
get("TesT");
you'll get the result "2".
If you iterate through the keys (using either keySet or
entrySet), you'll get the first added version of the key,
in the above case, you'll get "test".
It is allowed to use non-strings as keys. In this case the Map
behaves like a usual HashMap.
Note: This class is similar to a TreeMap(String.CASE_INSENSITIVE_ORDER)
except that non-strings do not throw a ClassCastException
and that keys are not sorted.
| Nested classes/interfaces inherited from interface java.util.Map |
java.util.Map.Entry<K,V> |
|
Method Summary |
void |
clear()
|
boolean |
containsKey(java.lang.Object key)
|
boolean |
containsValue(java.lang.Object value)
|
java.util.Set |
entrySet()
|
java.lang.Object |
get(java.lang.Object key)
|
boolean |
isCaseSensitive()
Returns if keys are case sensitive. |
boolean |
isEmpty()
|
java.util.Set |
keySet()
|
java.lang.Object |
put(java.lang.Object key,
java.lang.Object value)
|
void |
putAll(java.util.Map map)
|
java.lang.Object |
remove(java.lang.Object key)
|
void |
setCaseSensitive(boolean isCaseSensitive)
Sets if keys are case sensitive. |
int |
size()
|
java.util.Collection |
values()
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface java.util.Map |
equals, hashCode |
CaseAwareMap
public CaseAwareMap()
CaseAwareMap
public CaseAwareMap(boolean isCaseSensitive)
isCaseSensitive
public boolean isCaseSensitive()
- Returns if keys are case sensitive. Defaults to
false.
- Returns:
- are keys case sensitive
setCaseSensitive
public void setCaseSensitive(boolean isCaseSensitive)
- Sets if keys are case sensitive.
If set to
true this implementation behaves like
a HashMap. Please note, that all entries are cleared
when switching case sensitivity. It's not possible to switch
and keep the entries.
- Parameters:
isCaseSensitive - are keys case sensitive
clear
public void clear()
- Specified by:
clear in interface java.util.Map
containsKey
public boolean containsKey(java.lang.Object key)
- Specified by:
containsKey in interface java.util.Map
containsValue
public boolean containsValue(java.lang.Object value)
- Specified by:
containsValue in interface java.util.Map
entrySet
public java.util.Set entrySet()
- Specified by:
entrySet in interface java.util.Map
get
public java.lang.Object get(java.lang.Object key)
- Specified by:
get in interface java.util.Map
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty in interface java.util.Map
keySet
public java.util.Set keySet()
- Specified by:
keySet in interface java.util.Map
put
public java.lang.Object put(java.lang.Object key,
java.lang.Object value)
- Specified by:
put in interface java.util.Map
putAll
public void putAll(java.util.Map map)
- Specified by:
putAll in interface java.util.Map
remove
public java.lang.Object remove(java.lang.Object key)
- Specified by:
remove in interface java.util.Map
size
public int size()
- Specified by:
size in interface java.util.Map
values
public java.util.Collection values()
- Specified by:
values in interface java.util.Map