org.eclipse.core.databinding.observable.map

## Class WritableMap<K,V>

- java.lang.Object
- - org.eclipse.core.databinding.observable.AbstractObservable
  - - org.eclipse.core.databinding.observable.map.ObservableMap<K,V>
    - - org.eclipse.core.databinding.observable.map.WritableMap<K,V>

Type Parameters:
  `K` - the type of the keys in this map
  `V` - the type of the values in this map

All Implemented Interfaces:
  Map<K,V>, IObservable, IObservableMap<K,V>

    public class WritableMap<K,V>
    extends ObservableMap<K,V>

This class is thread safe. All state accessing methods must be invoked from the `current realm`. Methods for adding and removing listeners may be invoked from any thread.

Since:
  1.0

### Nested Class Summary

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

`Map.Entry<K,V>`

### Field Summary

### Fields inherited from class org.eclipse.core.databinding.observable.map.ObservableMap

`wrappedMap`

### Constructor Summary

Constructors
Constructor and Description
`WritableMap()` Constructs a new WritableMap on the default realm.
`WritableMap(Object keyType, Object valueType)` Constructs a new WritableMap on the default realm with the specified key and value types.
`WritableMap(Realm realm)` Constructs a new WritableMap on the given realm.
`WritableMap(Realm realm, Object keyType, Object valueType)` Constructs a new WritableMap on the given realm with the specified key and value types.

### Method Summary

All Methods Instance Methods Concrete Methods
`protected void` `addListener(Object listenerType, IObservablesListener listener)`
`void` `clear()` Clears the map.
`protected Object` `clone()`
`protected void` `fireEvent(ObservableEvent event)`
`protected void` `firstListenerAdded()`
`Object` `getKeyType()` Returns the element type for the `keyset` of this observable map, or `null` if the keyset is untyped.
`Realm` `getRealm()`
`Object` `getValueType()` Returns the element type for the `values` of this observable map, or `null` if the values collection is untyped.
`protected boolean` `hasListeners()`
`protected void` `lastListenerRemoved()`
`V` `put(K key, V value)` Associates the provided `value` with the `key`.
`void` `putAll(Map<? extends K,? extends V> map)` Adds the provided `map`'s contents to this map.
`V` `remove(Object key)` Removes the value with the provide `key`.
`protected void` `removeListener(Object listenerType, IObservablesListener listener)`

### Methods inherited from class org.eclipse.core.databinding.observable.map.ObservableMap

`addMapChangeListener, containsKey, containsValue, dispose, entrySet, equals, fireMapChange, get, getterCalled, hashCode, isEmpty, isStale, keySet, removeMapChangeListener, setStale, size, values`

### Methods inherited from class org.eclipse.core.databinding.observable.AbstractObservable

`addChangeListener, addDisposeListener, addStaleListener, checkRealm, fireChange, fireStale, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener`

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

`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

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

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

### Methods inherited from interface org.eclipse.core.databinding.observable.IObservable

`addChangeListener, addDisposeListener, addStaleListener, getRealm, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener`

### Constructor Detail

#### WritableMap

    public WritableMap()

Constructs a new WritableMap on the default realm.

#### WritableMap

    public WritableMap(Realm realm)

Constructs a new WritableMap on the given realm.

Parameters:
  `realm` - the realm

#### WritableMap

    public WritableMap(Object keyType,
                       Object valueType)

Constructs a new WritableMap on the default realm with the specified key and value types.

Parameters:
  `keyType` -
  `valueType` -
Since:
  1.2

#### WritableMap

    public WritableMap(Realm realm,
                       Object keyType,
                       Object valueType)

Constructs a new WritableMap on the given realm with the specified key and value types.

Parameters:
  `realm` -
  `keyType` -
  `valueType` -
Since:
  1.2

### Method Detail

#### getKeyType

    public Object getKeyType()

Description copied from interface: `IObservableMap`
Returns the element type for the `keyset` of this observable map, or `null` if the keyset is untyped.

Specified by:
  `getKeyType` in interface `IObservableMap<K,V>`
Overrides:
  `getKeyType` in class `ObservableMap<K,V>`
Returns:
  the element type for the `keyset` of this observable map, or `null` if the keyset is untyped.
Since:
  1.2

#### getValueType

    public Object getValueType()

Description copied from interface: `IObservableMap`
Returns the element type for the `values` of this observable map, or `null` if the values collection is untyped.

Specified by:
  `getValueType` in interface `IObservableMap<K,V>`
Overrides:
  `getValueType` in class `ObservableMap<K,V>`
Returns:
  the element type for the `values` of this observable map, or `null` if the values collection is untyped.
Since:
  1.2

#### put

    public V put(K key,
                 V value)

Associates the provided `value` with the `key`. Must be invoked from the current realm.

Specified by:
  `put` in interface `Map<K,V>`
Specified by:
  `put` in interface `IObservableMap<K,V>`
Overrides:
  `put` in class `ObservableMap<K,V>`

#### remove

    public V remove(Object key)

Removes the value with the provide `key`. Must be invoked from the current realm.

Specified by:
  `remove` in interface `Map<K,V>`
Specified by:
  `remove` in interface `IObservableMap<K,V>`
Overrides:
  `remove` in class `ObservableMap<K,V>`

#### clear

    public void clear()

Clears the map. Must be invoked from the current realm.

Specified by:
  `clear` in interface `Map<K,V>`
Overrides:
  `clear` in class `ObservableMap<K,V>`

#### putAll

    public void putAll(Map<? extends K,? extends V> map)

Adds the provided `map`'s contents to this map. Must be invoked from the current realm.

Specified by:
  `putAll` in interface `Map<K,V>`
Overrides:
  `putAll` in class `ObservableMap<K,V>`

#### addListener

    protected void addListener(Object listenerType,
                               IObservablesListener listener)

Parameters:
  `listenerType` -
  `listener` -

#### removeListener

    protected void removeListener(Object listenerType,
                                  IObservablesListener listener)

Parameters:
  `listenerType` -
  `listener` -

#### hasListeners

    protected boolean hasListeners()

#### fireEvent

    protected void fireEvent(ObservableEvent event)

#### firstListenerAdded

    protected void firstListenerAdded()

#### lastListenerRemoved

    protected void lastListenerRemoved()

#### getRealm

    public Realm getRealm()

Returns:
  Returns the realm.

#### clone

    protected Object clone()
                    throws CloneNotSupportedException

Overrides:
  `clone` in class `Object`
Throws:
  `CloneNotSupportedException`