Package org.zkoss.zkmax.bind.ext

## Class ForwardingMap<K,​V>

- java.lang.Object
- - org.zkoss.zkmax.bind.ext.ForwardingMap<K,​V>

- All Implemented Interfaces:
    `java.util.Map<K,​V>`
  Direct Known Subclasses:
    `StandardBiMap`

      public abstract class ForwardingMap<K,​V>
      extends java.lang.Object
      implements java.util.Map<K,​V>

  A map which forwards all its method calls to another map. Subclasses should override one or more methods to modify the behavior of the backing map as desired per the decorator pattern.
  Author:
    Kevin Bourrillion, Jared Levy
  See Also:
    ForwardingObject

- - ### 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
    --- | ---
    `ForwardingMap()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `clear()` |
    `boolean` | `containsKey​(java.lang.Object key)` |
    `boolean` | `containsValue​(java.lang.Object value)` |
    `protected java.util.Set<java.util.Map.Entry<K,​V>>` | `createEntrySet()` | Generates a `Set` for use by `entrySet()`.
    `protected java.util.Set<K>` | `createKeySet()` | Generates a `Set` for use by `keySet()`.
    `protected java.util.Collection<V>` | `createValues()` | Generates a `Collection` for use by `values()`.
    `protected abstract java.util.Map<K,​V>` | `delegate()` |
    `java.util.Set<java.util.Map.Entry<K,​V>>` | `entrySet()` |
    `boolean` | `equals​(java.lang.Object object)` |
    `V` | `get​(java.lang.Object key)` |
    `int` | `hashCode()` |
    `boolean` | `isEmpty()` |
    `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 object)` |
    `int` | `size()` |
    `java.lang.String` | `toString()` |
    `java.util.Collection<V>` | `values()` |

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.util.Map

      `compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll`

- - ### Constructor Detail

    - #### ForwardingMap

          public ForwardingMap()

  - ### Method Detail

    - #### delegate

          protected abstract java.util.Map<K,​V> delegate()

    - #### 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>`

    - #### remove

          public V remove​(java.lang.Object object)

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

    - #### clear

          public void clear()

      Specified by:
        `clear` 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>`

    - #### put

          public V put​(K key,
                       V value)

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

    - #### putAll

          public void putAll​(java.util.Map<? extends K,​? extends V> map)

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

    - #### keySet

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

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

    - #### createKeySet

          protected java.util.Set<K> createKeySet()

      Generates a `Set` for use by `keySet()`.

      ForwardingMap's implementation of keySet() calls this method to generate a collection of values, and then reuses that Set for subsequent invocations. By default, this Set is the result of invoking keySet() on the delegate. Override this method if you want to provide another implementation.

      Returns:
        A set for use by keySet().

    - #### values

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

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

    - #### createValues

          protected java.util.Collection<V> createValues()

      Generates a `Collection` for use by `values()`.

      ForwardingMap's implementation of `values()` calls this method to generate a collection of values, and then reuses that collection for subsequent invocations. By default, this collection is the result of invoking values() on the delegate. Override this method if you want to provide another implementation.

      Returns:
        A set for use by values().

    - #### entrySet

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

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

    - #### createEntrySet

          protected java.util.Set<java.util.Map.Entry<K,​V>> createEntrySet()

      Generates a `Set` for use by `entrySet()`.

      ForwardingMap's implementation of entrySet() calls this method to generate a set of entries, and then reuses that set for subsequent invocations. By default, this set is the result of invoking entrySet() on the delegate. Override this method if you want to provide another implementation.

      Returns:
        A set for use by entrySet().

    - #### equals

          public boolean equals​(java.lang.Object object)

      Specified by:
        `equals` in interface `java.util.Map<K,​V>`
      Overrides:
        `equals` in class `java.lang.Object`

    - #### hashCode

          public int hashCode()

      Specified by:
        `hashCode` in interface `java.util.Map<K,​V>`
      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`