Package org.apache.catalina.util

## Class ParameterMap<K,​V>

- java.lang.Object
- - org.apache.catalina.util.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
`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
`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>`