Package org.eclipse.core.databinding.property.map

# Class SimpleMapProperty<S,K,V>

java.lang.Object
org.eclipse.core.databinding.property.map.MapProperty<S,K,V>
org.eclipse.core.databinding.property.map.SimpleMapProperty<S,K,V>

Type Parameters:
  `S` - type of the source object
  `K` - type of the keys to the map
  `V` - type of the values in the map

All Implemented Interfaces:
  `IProperty`, `IMapProperty<S,K,V>`

public abstract class SimpleMapProperty<S,K,V> extends MapProperty<S,K,V>
Simplified abstract implementation of IMapProperty. This class takes care of most of the functional requirements for an IMapProperty implementation, leaving only the property-specific details to subclasses.

Subclasses must implement these methods:

- `IMapProperty.getKeyType()`
- `IMapProperty.getValueType()`
- `doGetMap(Object)`
- `doSetMap(Object, Map, MapDiff)`
- `adaptListener(ISimplePropertyListener)`

In addition, we recommended overriding `Object.toString()` to return a description suitable for debugging purposes.

Since:
  1.2

## Constructor Summary

Constructors
Constructor
Description
`SimpleMapProperty()`

## Method Summary

Modifier and Type
Method
Description
`abstract INativePropertyListener<S>`
`adaptListener(ISimplePropertyListener<S,MapDiff<K,V>> listener)`
Returns a listener capable of adding or removing itself as a listener on a source object using the the source's "native" listener API.
`protected abstract Map<K,V>`
`doGetMap(S source)`
Returns a Map with the current contents of the source's map property
`protected void`
`doSetMap(S source, Map<K,V> map)`
Updates the property on the source with the specified change.
`protected abstract void`
`doSetMap(S source, Map<K,V> map, MapDiff<K,V> diff)`
Updates the property on the source with the specified change.
`protected void`
`doUpdateMap(S source, MapDiff<K,V> diff)`
Updates the property on the source with the specified change.
`IObservableMap<K,V>`
`observe(Realm realm, S source)`
Returns an observable map observing this map property on the given property source
`final void`
`setMap(S source, Map<K,V> map, MapDiff<K,V> diff)`
Updates the property on the source with the specified change.

### Methods inherited from class org.eclipse.core.databinding.property.map.MapProperty

`getMap, mapFactory, mapFactory, observe, observeDetail, setMap, updateMap, values`

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.eclipse.core.databinding.property.map.IMapProperty

`getKeyType, getValueType`

## Constructor Details

### SimpleMapProperty

public SimpleMapProperty()

## Method Details

### observe

public IObservableMap<K,V> observe(Realm realm, S source)
Description copied from interface: `IMapProperty`
Returns an observable map observing this map property on the given property source

Parameters:
  `realm` - the observable's realm
  `source` - the property source
Returns:
  an observable map observing this map-typed property on the given property source

### doGetMap

protected abstract Map<K,V> doGetMap(S source)
Description copied from class: `MapProperty`
Returns a Map with the current contents of the source's map property

Overrides:
  `doGetMap` in class `MapProperty<S,K,V>`
Parameters:
  `source` - the property source
Returns:
  a Map with the current contents of the source's map property

### setMap

public final void setMap(S source, Map<K,V> map, MapDiff<K,V> diff)
Updates the property on the source with the specified change.

Parameters:
  `source` - the property source
  `map` - the new map
  `diff` - a diff describing the change
Since:
  1.6
Restriction:
  This method is not intended to be referenced by clients.

### doSetMap

protected abstract void doSetMap(S source, Map<K,V> map, MapDiff<K,V> diff)
Updates the property on the source with the specified change.

Parameters:
  `source` - the property source
  `map` - the new map
  `diff` - a diff describing the change
Restriction:
  This method is not intended to be referenced by clients.

### doSetMap

protected void doSetMap(S source, Map<K,V> map)
Description copied from class: `MapProperty`
Updates the property on the source with the specified change.

Overrides:
  `doSetMap` in class `MapProperty<S,K,V>`
Parameters:
  `source` - the property source
  `map` - the new map

### doUpdateMap

protected void doUpdateMap(S source, MapDiff<K,V> diff)
Description copied from class: `MapProperty`
Updates the property on the source with the specified change.

Overrides:
  `doUpdateMap` in class `MapProperty<S,K,V>`
Parameters:
  `source` - the property source
  `diff` - a diff describing the change

### adaptListener

public abstract INativePropertyListener<S> adaptListener(ISimplePropertyListener<S,MapDiff<K,V>> listener)
Returns a listener capable of adding or removing itself as a listener on a source object using the the source's "native" listener API. Events received from the source objects are parlayed to the specified listener argument.

This method returns null if the source object has no listener APIs for this property.

Parameters:
  `listener` - the property listener to receive events
Returns:
  a native listener which parlays property change events to the specified listener, or null if the source object has no listener APIs for this property.
Since:
  1.5
Restriction:
  This method is not intended to be referenced by clients.