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 extends Object,​V extends Object>`

  - ### 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 property empty.
    `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 Detail

    - #### size

          public abstract ReadOnlyIntegerProperty sizeProperty

      An integer property that represents the size of the map.
      See Also:
        `getSize()`

    - #### empty

          public abstract ReadOnlyBooleanProperty emptyProperty

      A boolean property that is `true`, if the map is empty.
      See Also:
        `isEmpty()`

  - ### Constructor Detail

    - #### MapExpression

          public MapExpression()

  - ### Method Detail

    - #### 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.
      See Also:
        `getSize()`

    - #### emptyProperty

          public abstract ReadOnlyBooleanProperty emptyProperty()

      A boolean property that is `true`, if the map is empty.
      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 property empty.
      Specified by:
        `isEmpty` in interface `Map<K,​V>`
      Property description:
        A boolean property that is `true`, if the map is empty.

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