Module javafx.base
Package javafx.beans.binding

# Class MapExpression<K,V>

java.lang.Object
javafx.beans.binding.MapExpression<K,V>

Type Parameters:
  `K` - the type of the key elements
  `V` - the type of the value elements

All Implemented Interfaces:
  `Map<K,V>`, `Observable`, `ObservableMapValue<K,V>`, `ObservableObjectValue<ObservableMap<K,V>>`, `ObservableValue<ObservableMap<K,V>>`, `ObservableMap<K,V>`

Direct Known Subclasses:
  `MapBinding`, `ReadOnlyMapProperty`

public abstract class MapExpression<K,V> extends Object implements ObservableMapValue<K,V>
`MapExpression` is an `ObservableMapValue` plus additional convenience methods to generate bindings in a fluent style.

A concrete sub-class of `MapExpression` has to implement the method `ObservableObjectValue.get()`, which provides the actual value of this expression.

If the wrapped list of a `MapExpression` is `null`, all methods implementing the `Map` interface will behave as if they were applied to an immutable empty list.

Since:
  JavaFX 2.1

## Property Summary

Properties
Type
Property
Description
`abstract ReadOnlyBooleanProperty`
`empty`
A boolean property that is `true`, if the map is empty.
`abstract ReadOnlyIntegerProperty`
`size`
An integer property that represents the size of the map.

## Nested Class Summary

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

`Map.Entry<K,V>`

## Constructor Summary

Constructors
Constructor
Description
`MapExpression()`

## Method Summary

Modifier and Type
Method
Description
`StringBinding`
`asString()`
Creates a `StringBinding` that holds the value of the `MapExpression` turned into a `String`.
`void`
`clear()`
`boolean`
`containsKey(Object obj)`
`boolean`
`containsValue(Object obj)`
`abstract ReadOnlyBooleanProperty`
`emptyProperty()`
A boolean property that is `true`, if the map is empty.
`Set<Map.Entry<K,V>>`
`entrySet()`
`V`
`get(Object key)`
`int`
`getSize()`
The size of the map
`ObservableMap<K,V>`
`getValue()`
Returns the current value of this `ObservableValue`
`boolean`
`isEmpty()`
Gets the value of the `empty` property.
`BooleanBinding`
`isEqualTo(ObservableMap<?,?> other)`
Creates a new `BooleanBinding` that holds `true` if this map is equal to another `ObservableMap`.
`BooleanBinding`
`isNotEqualTo(ObservableMap<?,?> other)`
Creates a new `BooleanBinding` that holds `true` if this map is not equal to another `ObservableMap`.
`BooleanBinding`
`isNotNull()`
Creates a new `BooleanBinding` that holds `true` if the wrapped map is not `null`.
`BooleanBinding`
`isNull()`
Creates a new `BooleanBinding` that holds `true` if the wrapped map is `null`.
`Set<K>`
`keySet()`
`static <K, V> MapExpression<K,V>`
`mapExpression(ObservableMapValue<K,V> value)`
Returns a `MapExpression` that wraps a `ObservableMapValue`.
`V`
`put(K key, V value)`
`void`
`putAll(Map<? extends K,? extends V> elements)`
`V`
`remove(Object obj)`
`int`
`size()`
`abstract ReadOnlyIntegerProperty`
`sizeProperty()`
An integer property that represents the size of the map.
`ObjectBinding<V>`
`valueAt(ObservableValue<K> key)`
Creates a new `ObjectBinding` that contains the mapping of the specified key.
`ObjectBinding<V>`
`valueAt(K key)`
Creates a new `ObjectBinding` that contains the mapping of the specified key.
`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`

### Methods inherited from interface javafx.beans.Observable

`addListener, removeListener`

### Methods inherited from interface javafx.collections.ObservableMap

`addListener, removeListener`

### Methods inherited from interface javafx.beans.value.ObservableObjectValue

`get`

### Methods inherited from interface javafx.beans.value.ObservableValue

`addListener, removeListener`

## Property Details

### size

public abstract ReadOnlyIntegerProperty sizeProperty
An integer property that represents the size of the map.

See Also:
  - `getSize()`
  - `sizeProperty()`

### empty

public abstract ReadOnlyBooleanProperty emptyProperty
A boolean property that is `true`, if the map is empty.

See Also:
  - `isEmpty()`
  - `emptyProperty()`

## Constructor Details

### MapExpression

public MapExpression()

## Method Details

### getValue

public ObservableMap<K,V> getValue()
Description copied from interface: `ObservableValue`
Returns the current value of this `ObservableValue`

Specified by:
  `getValue` in interface `ObservableValue<K>`
Returns:
  The current value

### mapExpression

public static <K, V> MapExpression<K,V> mapExpression(ObservableMapValue<K,V> value)
Returns a `MapExpression` that wraps a `ObservableMapValue`. If the `ObservableMapValue` is already a `MapExpression`, it will be returned. Otherwise a new `MapBinding` is created that is bound to the `ObservableMapValue`.

Type Parameters:
  `K` - the type of the key elements
  `V` - the type of the value elements
Parameters:
  `value` - The source `ObservableMapValue`
Returns:
  A `MapExpression` that wraps the `ObservableMapValue` if necessary
Throws:
  `NullPointerException` - if `value` is `null`

### getSize

public int getSize()
The size of the map

Returns:
  the size

### sizeProperty

public abstract ReadOnlyIntegerProperty sizeProperty()
An integer property that represents the size of the map.

Returns:
  the property
See Also:
  - `getSize()`

### emptyProperty

public abstract ReadOnlyBooleanProperty emptyProperty()
A boolean property that is `true`, if the map is empty.

Returns:
  the `ReadOnlyBooleanProperty`
See Also:
  - `isEmpty()`

### valueAt

public ObjectBinding<V> valueAt(K key)
Creates a new `ObjectBinding` that contains the mapping of the specified key.

Parameters:
  `key` - the key of the mapping
Returns:
  the `ObjectBinding`

### valueAt

public ObjectBinding<V> valueAt(ObservableValue<K> key)
Creates a new `ObjectBinding` that contains the mapping of the specified key.

Parameters:
  `key` - the key of the mapping
Returns:
  the `ObjectBinding`
Throws:
  `NullPointerException` - if `key` is `null`

### isEqualTo

public BooleanBinding isEqualTo(ObservableMap<?,?> other)
Creates a new `BooleanBinding` that holds `true` if this map is equal to another `ObservableMap`.

Parameters:
  `other` - the other `ObservableMap`
Returns:
  the new `BooleanBinding`
Throws:
  `NullPointerException` - if `other` is `null`

### isNotEqualTo

public BooleanBinding isNotEqualTo(ObservableMap<?,?> other)
Creates a new `BooleanBinding` that holds `true` if this map is not equal to another `ObservableMap`.

Parameters:
  `other` - the other `ObservableMap`
Returns:
  the new `BooleanBinding`
Throws:
  `NullPointerException` - if `other` is `null`

### isNull

public BooleanBinding isNull()
Creates a new `BooleanBinding` that holds `true` if the wrapped map is `null`.

Returns:
  the new `BooleanBinding`

### isNotNull

public BooleanBinding isNotNull()
Creates a new `BooleanBinding` that holds `true` if the wrapped map is not `null`.

Returns:
  the new `BooleanBinding`

### asString

public StringBinding asString()
Creates a `StringBinding` that holds the value of the `MapExpression` turned into a `String`. If the value of this `MapExpression` changes, the value of the `StringBinding` will be updated automatically.

Returns:
  the new `StringBinding`

### size

public int size()

Specified by:
  `size` in interface `Map<K,V>`

### isEmpty

public boolean isEmpty()
Gets the value of the `empty` property.

Specified by:
  `isEmpty` in interface `Map<K,V>`
Property description:
  A boolean property that is `true`, if the map is empty.
Returns:
  the value of the `empty` property
See Also:
  - `emptyProperty()`

### containsKey

public boolean containsKey(Object obj)

Specified by:
  `containsKey` in interface `Map<K,V>`

### containsValue

public boolean containsValue(Object obj)

Specified by:
  `containsValue` in interface `Map<K,V>`

### put

public V put(K key, V value)

Specified by:
  `put` in interface `Map<K,V>`

### remove

public V remove(Object obj)

Specified by:
  `remove` in interface `Map<K,V>`

### putAll

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

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

### clear

public void clear()

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

### keySet

public Set<K> keySet()

Specified by:
  `keySet` in interface `Map<K,V>`

### values

public Collection<V> values()

Specified by:
  `values` in interface `Map<K,V>`

### entrySet

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

Specified by:
  `entrySet` in interface `Map<K,V>`

### get

public V get(Object key)

Specified by:
  `get` in interface `Map<K,V>`