Class DeltaSet

All Implemented Interfaces:
Serializable, Cloneable, Iterable, Collection, Set

public class DeltaSet extends AbstractSet implements Cloneable, Serializable
Implements a set which is based on another set, which is assumed to be immutable.
Version:
1.00, 11/30/98
Author:
Cameron Purdy
See Also:
  • Constructor Details

    • DeltaSet

      public DeltaSet(Set set)
      Construct this set based on an existing set.
      Parameters:
      set - the set to base this delta set on
  • Method Details

    • getOriginal

      public Set getOriginal()
      Determine what items were in the original set.
      Returns:
      the set used to construct this DeltaSet
    • isModified

      public boolean isModified()
      Determine if any items were added or removed.
      Returns:
      true if the set has been modified
    • getAdded

      public Set getAdded()
      Determine what items were added to the delta set.
      Returns:
      an immutable set of added items
    • getRemoved

      public Set getRemoved()
      Determine what items were removed from the delta set.
      Returns:
      an immutable set of removed items
    • ensureAdded

      protected Set ensureAdded()
      Get a mutable set of items that were added to the delta set.
      Returns:
      a mutable set of added items
    • ensureRemoved

      protected Set ensureRemoved()
      Get a mutable set of items that were removed from the delta set.
      Returns:
      a mutable set of removed items
    • resolve

      public void resolve()
      Apply the changes to the underlying set ("commit").
    • reset

      public void reset()
      Discard the changes to the set ("rollback").
    • iterator

      public Iterator iterator()
      Returns an Iterator over the elements contained in this Collection.
      Specified by:
      iterator in interface Collection
      Specified by:
      iterator in interface Iterable
      Specified by:
      iterator in interface Set
      Specified by:
      iterator in class AbstractCollection
      Returns:
      an Iterator over the elements contained in this Collection
    • size

      public int size()
      Returns the number of elements in this Collection.
      Specified by:
      size in interface Collection
      Specified by:
      size in interface Set
      Specified by:
      size in class AbstractCollection
      Returns:
      the number of elements in this Collection
    • contains

      public boolean contains(Object o)
      Returns true if this Collection contains the specified element. More formally, returns true if and only if this Collection contains at least one element e such that (o==null ? e==null : o.equals(e)).
      Specified by:
      contains in interface Collection
      Specified by:
      contains in interface Set
      Overrides:
      contains in class AbstractCollection
      Parameters:
      o - the object to search for in the set
      Returns:
      true if this set contains the specified object
    • add

      public boolean add(Object o)
      Ensures that this Collection contains the specified element.
      Specified by:
      add in interface Collection
      Specified by:
      add in interface Set
      Overrides:
      add in class AbstractCollection
      Parameters:
      o - element whose presence in this Collection is to be ensured
      Returns:
      true if the Collection changed as a result of the call
    • remove

      public boolean remove(Object o)
      Removes a single instance of the specified element from this Collection, if it is present (optional operation). More formally, removes an element e such that (o==null ? e==null : o.equals(e)), if the Collection contains one or more such elements. Returns true if the Collection contained the specified element (or equivalently, if the Collection changed as a result of the call).
      Specified by:
      remove in interface Collection
      Specified by:
      remove in interface Set
      Overrides:
      remove in class AbstractCollection
      Parameters:
      o - element to be removed from this Collection, if present
      Returns:
      true if the Collection contained the specified element
    • clear

      public void clear()
      Removes all of the elements from this Collection.
      Specified by:
      clear in interface Collection
      Specified by:
      clear in interface Set
      Overrides:
      clear in class AbstractCollection
    • toArray

      public Object[] toArray()
      Returns an array containing all of the elements in this Set. Obeys the general contract of Collection.toArray.
      Specified by:
      toArray in interface Collection
      Specified by:
      toArray in interface Set
      Overrides:
      toArray in class AbstractCollection
      Returns:
      an Object array containing all of the elements in this Set
    • clone

      public Object clone()
      Clone the delta set.
      Overrides:
      clone in class Object
      Returns:
      a clone of this delta set