Module javafx.base
Package javafx.collections

# Class ObservableArrayBase<T extends ObservableArray<T>>

java.lang.Object
javafx.collections.ObservableArrayBase<T>

Type Parameters:
  `T` - actual array instance type

All Implemented Interfaces:
  `Observable`, `ObservableArray<T>`

    public abstract class ObservableArrayBase<T extends ObservableArray<T>>
    extends Object
    implements ObservableArray<T>

Abstract class that serves as a base class for `ObservableArray` implementations. The base class provides listener handling functionality by implementing `addListener` and `removeListener` methods. `fireChange(boolean, int, int)` method is provided for notifying the listeners.

Since:
  JavaFX 8.0
See Also:
  `ObservableArray`, `ArrayChangeListener`

- ## Constructor Summary

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

- ## 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​(ArrayChangeListener<T> listener)` | Add a listener to this observable array.
  `protected void` | `fireChange​(boolean sizeChanged, int from, int to)` | Notifies all listeners of a 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​(ArrayChangeListener<T> listener)` | Tries to remove a listener from this observable array.

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

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

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

  `clear, ensureCapacity, resize, size, trimToSize`

- ## Constructor Details

  - ### ObservableArrayBase

    public ObservableArrayBase()

- ## Method Details

  - ### addListener

    public final void addListener​(InvalidationListener listener)
    Description copied from interface: `Observable`
    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)`

  - ### removeListener

    public final void removeListener​(InvalidationListener listener)
    Description copied from interface: `Observable`
    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)`

  - ### addListener

    public final void addListener​(ArrayChangeListener<T> listener)
    Description copied from interface: `ObservableArray`
    Add a listener to this observable array.
    Specified by:
      `addListener` in interface `ObservableArray<T extends ObservableArray<T>>`
    Parameters:
      `listener` - the listener for listening to the array changes

  - ### removeListener

    public final void removeListener​(ArrayChangeListener<T> listener)
    Description copied from interface: `ObservableArray`
    Tries to remove a listener from this observable array. If the listener is not attached to this array, nothing happens.
    Specified by:
      `removeListener` in interface `ObservableArray<T extends ObservableArray<T>>`
    Parameters:
      `listener` - a listener to remove

  - ### fireChange

    protected final void fireChange​(boolean sizeChanged, int from, int to)
    Notifies all listeners of a change
    Parameters:
      `sizeChanged` - indicates size of array changed
      `from` - A beginning (inclusive) of an interval related to the change
      `to` - An end (exclusive) of an interval related to the change.