Class SetModel

All Implemented Interfaces:
IConcurrentModel

public class SetModel extends AbstractConcurrentModel
Trivial implementation of an IConcurrentModel. Implements an unordered set of elements that fires off change notifications whenever elements are added or removed from the set. All notifications are sent synchronously.
Since:
3.1
  • Constructor Details

    • SetModel

      public SetModel()
  • Method Details

    • getElements

      public Object[] getElements()
      Return the contents of the model.
      Returns:
      the array of elements
    • set

      public void set(Object[] newContents)
      Sets the contents to the given array of elements
      Parameters:
      newContents - new contents of this set
    • clear

      public void clear()
      Empties the set
    • addAll

      public void addAll(Object[] toAdd)
      Adds the given elements to the set
      Parameters:
      toAdd - elements to add
    • addAll

      public void addAll(Collection toAdd)
      Adds the given elements to the set. Duplicate elements are ignored.
      Parameters:
      toAdd - elements to add
    • changeAll

      public void changeAll(Object[] changed)
      Fires a change notification for all elements in the given array
      Parameters:
      changed - array of elements that have changed
    • removeAll

      public void removeAll(Object[] toRemove)
      Removes all of the given elements from the set.
      Parameters:
      toRemove - elements to remove
    • requestUpdate

      public void requestUpdate(IConcurrentModelListener listener)
      Description copied from interface: IConcurrentModel
      Requests that the receiver to call the given listener's setContents(...) method at its earliest convenience. The receiver is allowed to compute the elements asynchronously. That is, it can compute the result in a background thread and call setContents(...) once the result is ready. If the result is too large to return in one batch, it can call setContents with an empty array followed by a sequence of adds.

      Has no effect if an update is already queued for an identical listener.

      Parameters:
      listener - listener whose setContents method should be called. The listener must have been previously registered with addListener.