Module javafx.base
Package javafx.beans.value

## Class ObservableValueBase<T>

- java.lang.Object
- - javafx.beans.value.ObservableValueBase<T>

- All Implemented Interfaces:
    `Observable`, `ObservableValue<T>`

      public abstract class ObservableValueBase<T>
      extends Object
      implements ObservableValue<T>

  A convenience class for creating implementations of `ObservableValue`. It contains all of the infrastructure support for value invalidation- and change event notification. This implementation can handle adding and removing listeners while the observers are being notified, but it is not thread-safe.
  Since:
    JavaFX 2.0

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ObservableValueBase()` |

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addListener​(InvalidationListener listener)` | Adds an `InvalidationListener` which will be notified whenever the `Observable` becomes invalid.
    `void` | `addListener​(ChangeListener<? super T> listener)` | Adds a `ChangeListener` which will be notified whenever the value of the `ObservableValue` changes.
    `protected void` | `fireValueChangedEvent()` | Notify the currently registered observers of a value change.
    `void` | `removeListener​(InvalidationListener listener)` | Removes the given listener from the list of listeners, that are notified whenever the value of the `Observable` becomes invalid.
    `void` | `removeListener​(ChangeListener<? super T> listener)` | Removes the given listener from the list of listeners that are notified whenever the value of the `ObservableValue` changes.

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

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

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

      `getValue`

- - ### Constructor Detail

    - #### ObservableValueBase

          public ObservableValueBase()

  - ### Method Detail

    - #### addListener

          public void addListener​(InvalidationListener listener)

      Adds an `InvalidationListener` which will be notified whenever the `Observable` becomes invalid. If the same listener is added more than once, then it will be notified more than once. That is, no check is made to ensure uniqueness.

      Note that the same actual `InvalidationListener` instance may be safely registered for different `Observables`.

      The `Observable` stores a strong reference to the listener which will prevent the listener from being garbage collected and may result in a memory leak. It is recommended to either unregister a listener by calling `removeListener` after use or to use an instance of `WeakInvalidationListener` avoid this situation.

      Specified by:
        `addListener` in interface `Observable`
      Parameters:
        `listener` - The listener to register
      See Also:
        `Observable.removeListener(InvalidationListener)`

    - #### addListener

          public void addListener​(ChangeListener<? super T> listener)

      Adds a `ChangeListener` which will be notified whenever the value of the `ObservableValue` changes. If the same listener is added more than once, then it will be notified more than once. That is, no check is made to ensure uniqueness.

      Note that the same actual `ChangeListener` instance may be safely registered for different `ObservableValues`.

      The `ObservableValue` stores a strong reference to the listener which will prevent the listener from being garbage collected and may result in a memory leak. It is recommended to either unregister a listener by calling `removeListener` after use or to use an instance of `WeakChangeListener` avoid this situation.

      Specified by:
        `addListener` in interface `ObservableValue<T>`
      Parameters:
        `listener` - The listener to register
      See Also:
        `ObservableValue.removeListener(ChangeListener)`

    - #### removeListener

          public void removeListener​(InvalidationListener listener)

      Removes the given listener from the list of listeners, that are notified whenever the value of the `Observable` becomes invalid.

      If the given listener has not been previously registered (i.e. it was never added) then this method call is a no-op. If it had been previously added then it will be removed. If it had been added more than once, then only the first occurrence will be removed.

      Specified by:
        `removeListener` in interface `Observable`
      Parameters:
        `listener` - The listener to remove
      See Also:
        `Observable.addListener(InvalidationListener)`

    - #### removeListener

          public void removeListener​(ChangeListener<? super T> listener)

      Removes the given listener from the list of listeners that are notified whenever the value of the `ObservableValue` changes.

      If the given listener has not been previously registered (i.e. it was never added) then this method call is a no-op. If it had been previously added then it will be removed. If it had been added more than once, then only the first occurrence will be removed.

      Specified by:
        `removeListener` in interface `ObservableValue<T>`
      Parameters:
        `listener` - The listener to remove
      See Also:
        `ObservableValue.addListener(ChangeListener)`

    - #### fireValueChangedEvent

          protected void fireValueChangedEvent()

      Notify the currently registered observers of a value change. This implementation will ignore all adds and removes of observers that are done while a notification is processed. The changes take effect in the following call to fireValueChangedEvent.