ObjectBinding (JavaFX 17)

Module javafx.base
Package javafx.beans.binding

## Class ObjectBinding<T>

- java.lang.Object
- - javafx.beans.binding.ObjectExpression<T>
  - - javafx.beans.binding.ObjectBinding<T>

- Type Parameters:
    `T` - the type of the wrapped `Object`
  All Implemented Interfaces:
    `Binding<T>`, `Observable`, `ObservableObjectValue<T>`, `ObservableValue<T>`

      public abstract class ObjectBinding<T>
      extends ObjectExpression<T>
      implements Binding<T>

  Base class that provides most of the functionality needed to implement a `Binding` of an `Object`.

  `ObjectBinding` provides a simple invalidation-scheme. An extending class can register dependencies by calling `bind(Observable...)`. If One of the registered dependencies becomes invalid, this `ObjectBinding` is marked as invalid. With `unbind(Observable...)` listening to dependencies can be stopped.

  To provide a concrete implementation of this class, the method `computeValue()` has to be implemented to calculate the value of this binding based on the current state of the dependencies. It is called when `get()` is called for an invalid binding.

  See `DoubleBinding` for an example how this base class can be extended.

  Since:
    JavaFX 2.0
  See Also:
    `Binding`, `ObjectExpression`

- - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `bind​(Observable... dependencies)` | Start observing the dependencies for changes.
    `protected abstract T` | `computeValue()` | Calculates the current value of this binding.
    `void` | `dispose()` | A default implementation of `dispose()` that is empty.
    `T` | `get()` | Returns the result of `computeValue()`.
    `ObservableList<?>` | `getDependencies()` | A default implementation of `getDependencies()` that returns an empty `ObservableList`.
    `protected void` | `onInvalidating()` | The method onInvalidating() can be overridden by extending classes to react, if this binding becomes invalid.
    `String` | `toString()` | Returns a string representation of this `ObjectBinding` object.
    `protected void` | `unbind​(Observable... dependencies)` | Stop observing the dependencies for changes.

    - ### Methods declared in class javafx.beans.binding.ObjectExpression

      `asString, asString, asString, isEqualTo, isEqualTo, isNotEqualTo, isNotEqualTo, isNotNull, isNull, objectExpression`

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

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

    - ### Methods declared in interface javafx.beans.binding.Binding

      `invalidate, isValid`

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

      `addListener, removeListener`

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

      `addListener, getValue, removeListener`

- - ### Constructor Detail

    - #### ObjectBinding

          public ObjectBinding()

      Creates a default `ObjectBinding`.

  - ### Method Detail

    - #### bind

          protected final void bind​(Observable... dependencies)

      Start observing the dependencies for changes. If the value of one of the dependencies changes, the binding is marked as invalid.
      Parameters:
        `dependencies` - the dependencies to observe

    - #### unbind

          protected final void unbind​(Observable... dependencies)

      Stop observing the dependencies for changes.
      Parameters:
        `dependencies` - the dependencies to stop observing

    - #### dispose

          public void dispose()

      A default implementation of `dispose()` that is empty.
      Specified by:
        `dispose` in interface `Binding<T>`

    - #### getDependencies

          public ObservableList<?> getDependencies()

      A default implementation of `getDependencies()` that returns an empty `ObservableList`.
      Specified by:
        `getDependencies` in interface `Binding<T>`
      Returns:
        an empty `ObservableList`

    - #### get

          public final T get()

      Returns the result of `computeValue()`. The method `computeValue()` is only called if the binding is invalid. The result is cached and returned if the binding did not become invalid since the last call of `get()`.
      Specified by:
        `get` in interface `ObservableObjectValue<T>`
      Returns:
        the current value

    - #### onInvalidating

          protected void onInvalidating()

      The method onInvalidating() can be overridden by extending classes to react, if this binding becomes invalid. The default implementation is empty.

    - #### computeValue

          protected abstract T computeValue()

      Calculates the current value of this binding.

      Classes extending `ObjectBinding` have to provide an implementation of `computeValue`.

      Returns:
        the current value

    - #### toString

          public String toString()

      Returns a string representation of this `ObjectBinding` object.
      Overrides:
        `toString` in class `Object`
      Returns:
        a string representation of this `ObjectBinding` object.