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 Detail

      • ModifiableObservableListBase

        public ModifiableObservableListBase()
    • Method Detail

      • 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())