Module javafx.base

Class ModifiableObservableListBase<E>

Type Parameters:
E - the type of the elements contained in the List
All Implemented Interfaces:
Iterable<E>, Collection<E>, List<E>, Observable, ObservableList<E>

public abstract class ModifiableObservableListBase<E>
extends ObservableListBase<E>
Abstract class that serves as a base class for ObservableList implementations that are modifiable. To implement a modifiable ObservableList class, you just need to implement the following set of methods: and the notifications and built and fired automatically for you.

Example of a simple ObservableList delegating to another List would look like this:


   public class ArrayObservableList<E> extends ModifiableObservableList<E> {

   private final List<E> delegate = new ArrayList<>();

   public E get(int index) {
       return delegate.get(index);
   }

   public int size() {
       return delegate.size();
   }

   protected void doAdd(int index, E element) {
       delegate.add(index, element);
   }

   protected E doSet(int index, E element) {
       return delegate.set(index, element);
   }

   protected E doRemove(int index) {
       return delegate.remove(index);
   }

 
Since:
JavaFX 8.0
See Also:
ObservableListBase
  • Constructor Details

    • ModifiableObservableListBase

      public ModifiableObservableListBase()
      Creates a default ModifiableObservableListBase.
  • Method Details

    • doAdd

      protected abstract void doAdd​(int index, E element)
      Adds the element to the List at the position of index.

      For the description of possible exceptions, please refer to the documentation of AbstractList.add(java.lang.Object) method.

      Parameters:
      index - the position where to add the element
      element - the element that will be added
      Throws:
      ClassCastException - if the type of the specified element is incompatible with this list
      NullPointerException - if the specified arguments contain one or more null elements
      IllegalArgumentException - if some property of this element prevents it from being added to this list
      IndexOutOfBoundsException - if the index is out of range (index < 0 || index > size())
    • doSet

      protected abstract E doSet​(int index, E element)
      Sets the element in the List at the position of index.

      For the description of possible exceptions, please refer to the documentation of List.set(int, java.lang.Object) method.

      Parameters:
      index - the position where to set the element
      element - the element that will be set at the specified position
      Returns:
      the old element at the specified position
      Throws:
      ClassCastException - if the type of the specified element is incompatible with this list
      NullPointerException - if the specified arguments contain one or more null elements
      IllegalArgumentException - if some property of this element prevents it from being added to this list
      IndexOutOfBoundsException - if the index is out of range (index < 0 || index >= size())
    • doRemove

      protected abstract E doRemove​(int index)
      Removes the element at position of index.
      Parameters:
      index - the index of the removed element
      Returns:
      the removed element
      Throws:
      IndexOutOfBoundsException - if the index is out of range (index < 0 || index >= size())