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
`final void`
`addListener(InvalidationListener listener)`
Adds an `InvalidationListener` which will be notified whenever the `Observable` becomes invalid.
`final void`
`addListener(ArrayChangeListener<T> listener)`
Add a listener to this observable array.
`protected final void`
`fireChange(boolean sizeChanged, int from, int to)`
Notifies all listeners of a change
`final void`
`removeListener(InvalidationListener listener)`
Removes the given listener from the list of listeners, that are notified whenever the value of the `Observable` becomes invalid.
`final 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.