Class ParameterMap<K,​V>

  • Type Parameters:
    K - The type of Key
    V - The type of Value
    All Implemented Interfaces:
    java.io.Serializable, java.util.Map<K,​V>

    public final class ParameterMap<K,​V>
    extends java.lang.Object
    implements java.util.Map<K,​V>, java.io.Serializable
    Implementation of java.util.Map that includes a locked property. This class can be used to safely expose Catalina internal parameter map objects to user classes without having to clone them in order to avoid modifications. When first created, a ParameterMap instance is not locked.
    Author:
    Craig R. McClanahan
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface java.util.Map

        java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>
    • Constructor Summary

      Constructors 
      Constructor Description
      ParameterMap()
      Construct a new, empty map with the default initial capacity and load factor.
      ParameterMap​(int initialCapacity)
      Construct a new, empty map with the specified initial capacity and default load factor.
      ParameterMap​(int initialCapacity, float loadFactor)
      Construct a new, empty map with the specified initial capacity and load factor.
      ParameterMap​(java.util.Map<K,​V> map)
      Construct a new map with the same mappings as the given map.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()
      boolean containsKey​(java.lang.Object key)  
      boolean containsValue​(java.lang.Object value)  
      java.util.Set<java.util.Map.Entry<K,​V>> entrySet()
      V get​(java.lang.Object key)  
      boolean isEmpty()  
      boolean isLocked()  
      java.util.Set<K> keySet()
      V put​(K key, V value)
      void putAll​(java.util.Map<? extends K,​? extends V> map)
      V remove​(java.lang.Object key)
      void setLocked​(boolean locked)
      Set the locked state of this parameter map.
      int size()  
      java.util.Collection<V> 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

        compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
    • Constructor Detail

      • ParameterMap

        public ParameterMap()
        Construct a new, empty map with the default initial capacity and load factor.
      • ParameterMap

        public ParameterMap​(int initialCapacity)
        Construct a new, empty map with the specified initial capacity and default load factor.
        Parameters:
        initialCapacity - The initial capacity of this map
      • ParameterMap

        public ParameterMap​(int initialCapacity,
                            float loadFactor)
        Construct a new, empty map with the specified initial capacity and load factor.
        Parameters:
        initialCapacity - The initial capacity of this map
        loadFactor - The load factor of this map
      • ParameterMap

        public ParameterMap​(java.util.Map<K,​V> map)
        Construct a new map with the same mappings as the given map.
        Parameters:
        map - Map whose contents are duplicated in the new map
    • Method Detail

      • isLocked

        public boolean isLocked()
        Returns:
        the locked state of this parameter map.
      • setLocked

        public void setLocked​(boolean locked)
        Set the locked state of this parameter map.
        Parameters:
        locked - The new locked state
      • clear

        public void clear()
        Specified by:
        clear in interface java.util.Map<K,​V>
        Throws:
        java.lang.IllegalStateException - if this map is currently locked
      • put

        public V put​(K key,
                     V value)
        Specified by:
        put in interface java.util.Map<K,​V>
        Throws:
        java.lang.IllegalStateException - if this map is currently locked
      • putAll

        public void putAll​(java.util.Map<? extends K,​? extends V> map)
        Specified by:
        putAll in interface java.util.Map<K,​V>
        Throws:
        java.lang.IllegalStateException - if this map is currently locked
      • remove

        public V remove​(java.lang.Object key)
        Specified by:
        remove in interface java.util.Map<K,​V>
        Throws:
        java.lang.IllegalStateException - if this map is currently locked
      • size

        public int size()
        Specified by:
        size in interface java.util.Map<K,​V>
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface java.util.Map<K,​V>
      • containsKey

        public boolean containsKey​(java.lang.Object key)
        Specified by:
        containsKey in interface java.util.Map<K,​V>
      • containsValue

        public boolean containsValue​(java.lang.Object value)
        Specified by:
        containsValue in interface java.util.Map<K,​V>
      • get

        public V get​(java.lang.Object key)
        Specified by:
        get in interface java.util.Map<K,​V>
      • keySet

        public java.util.Set<K> keySet()

        Returns an unmodifiable Set view of the keys contained in this map if it is locked.

        Specified by:
        keySet in interface java.util.Map<K,​V>
      • values

        public java.util.Collection<V> values()

        Returns an unmodifiable Collection view of the values contained in this map if it is locked.

        Specified by:
        values in interface java.util.Map<K,​V>
      • entrySet

        public java.util.Set<java.util.Map.Entry<K,​V>> entrySet()

        Returns an unmodifiable Set view of the mappings contained in this map if it is locked.

        Specified by:
        entrySet in interface java.util.Map<K,​V>