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 Detail

      • SetModel

        public SetModel()
    • Method Detail

      • 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.