MapExpression (JavaFX 17)

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 declared in interface java.util.Map

      `Map.Entry<K extends Object,​V extends Object>`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MapExpression()` | Creates a default `MapExpression`.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `StringBinding` | `asString()` | Creates a `StringBinding` that holds the value of the `MapExpression` turned into a `String`.
    `abstract ReadOnlyBooleanProperty` | `emptyProperty()` | A boolean property that is `true`, if the map is empty.
    `int` | `getSize()` | The size of the map
    `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`.
    `static <K,​V> MapExpression<K,​V>` | `mapExpression​(ObservableMapValue<K,​V> value)` | Returns a `MapExpression` that wraps a `ObservableMapValue`.
    `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.

    - ### Methods declared in class java.lang.Object

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

    - ### Methods declared in interface java.util.Map

      `clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values`

    - ### Methods declared in interface javafx.beans.Observable

      `addListener, removeListener`

    - ### Methods declared in interface javafx.collections.ObservableMap

      `addListener, removeListener`

    - ### Methods declared in interface javafx.beans.value.ObservableObjectValue

      `get`

    - ### Methods declared in interface javafx.beans.value.ObservableValue

      `addListener, getValue, 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:
        `Map.isEmpty()`

  - ### Constructor Detail

    - #### MapExpression

          public MapExpression()

      Creates a default `MapExpression`.

  - ### Method Detail

    - #### 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:
        `Map.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`