Class IgnoreCaseMap<V>

All Implemented Interfaces:
Serializable, Cloneable, Map<String,V>

public class IgnoreCaseMap<V> extends AbstractDecoratedMap<String,V> implements Serializable, Cloneable
A Map decorator that makes the mappings in the backing map case insensitive (this is implemented by converting all keys to uppercase), if the keys used are Strings. If the keys used are not Strings, it wil work as a normal java.util.Map.
See Also:
  • Constructor Details

    • IgnoreCaseMap

      public IgnoreCaseMap()
      Constructs a new empty Map. The backing map will be a HashMap
    • IgnoreCaseMap

      public IgnoreCaseMap(Map<String,? extends V> pMap)
      Constructs a new Map with the same key-value mappings as the given Map. The backing map will be a HashMap

      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:
      pMap - the map whose mappings are to be placed in this map.
    • IgnoreCaseMap

      public IgnoreCaseMap(Map pBacking, Map<String,? extends V> pContents)
      Constructs a new Map with the same key-value mappings as the given Map.

      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 as pContents.
      pContents - the map whose mappings are to be placed in this map. May be null
      Throws:
      IllegalArgumentException - if pBacking is null
      IllegalArgumentException - if pBacking differs from pContent and is not empty.
  • Method Details

    • put

      public V put(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:
      put in interface Map<String,V>
      Specified by:
      put in class AbstractDecoratedMap<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.
    • unwrap

      private V unwrap(Map.Entry<String,V> pEntry)
    • get

      public V get(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:
      get in interface Map<String,V>
      Specified by:
      get in class AbstractDecoratedMap<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(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:
      remove in interface Map<String,V>
      Specified by:
      remove in class AbstractDecoratedMap<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(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:
      containsKey in interface Map<String,V>
      Overrides:
      containsKey in class AbstractDecoratedMap<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 Object toUpper(Object pObject)
      Converts the parameter to uppercase, if it's a String.
    • newEntryIterator

      protected Iterator<Map.Entry<String,V>> newEntryIterator()
      Specified by:
      newEntryIterator in class AbstractDecoratedMap<String,V>
    • newKeyIterator

      protected Iterator<String> newKeyIterator()
      Specified by:
      newKeyIterator in class AbstractDecoratedMap<String,V>
    • newValueIterator

      protected Iterator<V> newValueIterator()
      Specified by:
      newValueIterator in class AbstractDecoratedMap<String,V>