com.jgoodies.common.collect

## Class ArrayListModel<E>

- java.lang.Object
- - java.util.AbstractCollection<E>
  - - java.util.AbstractList<E>
    - - java.util.ArrayList<E>
      - - com.jgoodies.common.collect.ArrayListModel<E>

- Type Parameters:
    `E` - the type of the list elements
  All Implemented Interfaces:
    ObservableList<E>, ObservableList2<E>, Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess, ListModel

      public class ArrayListModel<E>
      extends ArrayList<E>
      implements ObservableList2<E>

  Adds `ListModel` capabilities to its superclass. It allows to observe changes in the content and structure. Useful for Lists that are bound to list views such as JList, JComboBox and JTable.

  This class should be be final and it will be marked final in a future version, if its subclass in the JGoodies Binding has been removed.

  Author:
    Karsten Lentzsch
  See Also:
    `ObservableList`, `LinkedListModel`, Serialized Form

- - ### Field Summary

    - ### Fields inherited from class java.util.AbstractList

      `modCount`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ArrayListModel()` Constructs an empty list with an initial capacity of ten.
    `ArrayListModel(Collection<? extends E> c)` Constructs a list containing the elements of the specified collection, in the order they are returned by the collection's iterator.
    `ArrayListModel(int initialCapacity)` Constructs an empty list with the specified initial capacity.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `add(E e)`
    `void` | `add(int index, E element)`
    `boolean` | `addAll(Collection<? extends E> c)`
    `boolean` | `addAll(int index, Collection<? extends E> c)`
    `void` | `addListDataListener(ListDataListener l)`
    `void` | `clear()`
    `void` | `fireContentsChanged(int index)` Notifies all registered `ListDataListeners` that the element at the specified index has changed.
    `void` | `fireContentsChanged(int index0, int index1)` Notifies all registered `ListDataListeners` that the element at the specified index has changed.
    `Object` | `getElementAt(int index)`
    `ListDataListener[]` | `getListDataListeners()` Returns an array of all the list data listeners registered on this `ArrayListModel`.
    `int` | `getSize()`
    `E` | `remove(int index)`
    `boolean` | `remove(Object o)`
    `boolean` | `removeAll(Collection<?> c)` Removes from this collection all of its elements that are contained in the specified collection (optional operation).
    `void` | `removeListDataListener(ListDataListener l)`
    `protected void` | `removeRange(int fromIndex, int toIndex)`
    `boolean` | `retainAll(Collection<?> c)` Retains only the elements in this collection that are contained in the specified collection (optional operation).
    `E` | `set(int index, E element)`

    - ### Methods inherited from class java.util.ArrayList

      `clone, contains, ensureCapacity, get, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, size, subList, toArray, toArray, trimToSize`

    - ### Methods inherited from class java.util.AbstractList

      `equals, hashCode`

    - ### Methods inherited from class java.util.AbstractCollection

      `containsAll, toString`

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

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.util.List

      `contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, size, subList, toArray, toArray`

- - ### Constructor Detail

    - #### ArrayListModel

          public ArrayListModel()

      Constructs an empty list with an initial capacity of ten.

    - #### ArrayListModel

          public ArrayListModel(int initialCapacity)

      Constructs an empty list with the specified initial capacity.
      Parameters:
        `initialCapacity` - the initial capacity of the list.
      Throws:
        `IllegalArgumentException` - if the specified initial capacity is negative

    - #### ArrayListModel

          public ArrayListModel(Collection<? extends E> c)

      Constructs a list containing the elements of the specified collection, in the order they are returned by the collection's iterator. The `ArrayListModel` instance has an initial capacity of 110% the size of the specified collection.
      Parameters:
        `c` - the collection whose elements are to be placed into this list.
      Throws:
        `NullPointerException` - if the specified collection is `null`

  - ### Method Detail

    - #### add

          public final void add(int index,
                 E element)

      Specified by:
        `add` in interface `List<E>`
      Overrides:
        `add` in class `ArrayList<E>`

    - #### add

          public final boolean add(E e)

      Specified by:
        `add` in interface `Collection<E>`
      Specified by:
        `add` in interface `List<E>`
      Overrides:
        `add` in class `ArrayList<E>`

    - #### addAll

          public final boolean addAll(int index,
                       Collection<? extends E> c)

      Specified by:
        `addAll` in interface `List<E>`
      Overrides:
        `addAll` in class `ArrayList<E>`

    - #### addAll

          public final boolean addAll(Collection<? extends E> c)

      Specified by:
        `addAll` in interface `Collection<E>`
      Specified by:
        `addAll` in interface `List<E>`
      Overrides:
        `addAll` in class `ArrayList<E>`

    - #### removeAll

          public boolean removeAll(Collection<?> c)

      Removes from this collection all of its elements that are contained in the specified collection (optional operation).

      This implementation iterates over this collection, checking each element returned by the iterator in turn to see if it's contained in the specified collection. If it's so contained, it's removed from this collection with the iterator's `remove` method.

      Note that this implementation will throw an `UnsupportedOperationException` if the iterator returned by the `iterator` method does not implement the `remove` method and this collection contains one or more elements in common with the specified collection.

      Specified by:
        `removeAll` in interface `Collection<E>`
      Specified by:
        `removeAll` in interface `List<E>`
      Overrides:
        `removeAll` in class `ArrayList<E>`
      Parameters:
        `c` - elements to be removed from this collection.
      Returns:
        `true` if this collection changed as a result of the call.
      Throws:
        `UnsupportedOperationException` - if the `removeAll` method is not supported by this collection.
        `NullPointerException` - if the specified collection is null.
      See Also:
        `remove(Object)`, `ArrayList.contains(Object)`

    - #### retainAll

          public boolean retainAll(Collection<?> c)

      Retains only the elements in this collection that are contained in the specified collection (optional operation). In other words, removes from this collection all of its elements that are not contained in the specified collection.

      This implementation iterates over this collection, checking each element returned by the iterator in turn to see if it's contained in the specified collection. If it's not so contained, it's removed from this collection with the iterator's `remove` method.

      Note that this implementation will throw an `UnsupportedOperationException` if the iterator returned by the `iterator` method does not implement the `remove` method and this collection contains one or more elements not present in the specified collection.

      Specified by:
        `retainAll` in interface `Collection<E>`
      Specified by:
        `retainAll` in interface `List<E>`
      Overrides:
        `retainAll` in class `ArrayList<E>`
      Parameters:
        `c` - elements to be retained in this collection.
      Returns:
        `true` if this collection changed as a result of the call.
      Throws:
        `UnsupportedOperationException` - if the `retainAll` method is not supported by this Collection.
        `NullPointerException` - if the specified collection is null.
      See Also:
        `remove(Object)`, `ArrayList.contains(Object)`

    - #### clear

          public final void clear()

      Specified by:
        `clear` in interface `Collection<E>`
      Specified by:
        `clear` in interface `List<E>`
      Overrides:
        `clear` in class `ArrayList<E>`

    - #### remove

          public final E remove(int index)

      Specified by:
        `remove` in interface `List<E>`
      Overrides:
        `remove` in class `ArrayList<E>`

    - #### remove

          public final boolean remove(Object o)

      Specified by:
        `remove` in interface `Collection<E>`
      Specified by:
        `remove` in interface `List<E>`
      Overrides:
        `remove` in class `ArrayList<E>`

    - #### removeRange

          protected final void removeRange(int fromIndex,
                         int toIndex)

      Overrides:
        `removeRange` in class `ArrayList<E>`

    - #### set

          public final E set(int index,
              E element)

      Specified by:
        `set` in interface `List<E>`
      Overrides:
        `set` in class `ArrayList<E>`

    - #### addListDataListener

          public final void addListDataListener(ListDataListener l)

      Specified by:
        `addListDataListener` in interface `ListModel`

    - #### removeListDataListener

          public final void removeListDataListener(ListDataListener l)

      Specified by:
        `removeListDataListener` in interface `ListModel`

    - #### getElementAt

          public final Object getElementAt(int index)

      Specified by:
        `getElementAt` in interface `ListModel`

    - #### getSize

          public final int getSize()

      Specified by:
        `getSize` in interface `ListModel`

    - #### fireContentsChanged

          public final void fireContentsChanged(int index)

      Description copied from interface: `ObservableList2`
      Notifies all registered `ListDataListeners` that the element at the specified index has changed. Useful if there's a content change without any structural change.

      This method must be called after the element of the list changes.

      Specified by:
        `fireContentsChanged` in interface `ObservableList2<E>`
      Parameters:
        `index` - the index of the element that has changed
      See Also:
        `EventListenerList`

    - #### fireContentsChanged

          public final void fireContentsChanged(int index0,
                                 int index1)

      Notifies all registered `ListDataListeners` that the element at the specified index has changed. Useful if there's a content change without any structural change.

      This method must be called after one or more elements of the list change. The changed elements are specified by the closed interval index0, index1 -- the end points are included. Note that index0 need not be less than or equal to index1.

      Specified by:
        `fireContentsChanged` in interface `ObservableList2<E>`
      Parameters:
        `index0` - one end of the new interval
        `index1` - the other end of the new interval
      Since:
        1.7
      See Also:
        `EventListenerList`

    - #### getListDataListeners

          public final ListDataListener[] getListDataListeners()

      Returns an array of all the list data listeners registered on this `ArrayListModel`.
      Returns:
        all of this model's `ListDataListener`s, or an empty array if no list data listeners are currently registered
      See Also:
        `addListDataListener(ListDataListener)`, `removeListDataListener(ListDataListener)`

Copyright © 2009-2013 JGoodies Software GmbH. All Rights Reserved.