Class UnionSet<E>

Type Parameters:
E - type of the elements in the union set
All Implemented Interfaces:
Iterable<E>, Collection<E>, Set<E>, IObservable, IObservableCollection<E>, IObservableSet<E>

public final class UnionSet<E> extends ObservableSet<E>
Represents a set consisting of the union of elements from one or more other sets. This object does not need to be explicitly disposed. If nobody is listening to the UnionSet, the set will remove its listeners.

This class is thread safe. All state accessing methods must be invoked from the current realm. Methods for adding and removing listeners may be invoked from any thread.

Since:
1.0
  • Constructor Details

    • UnionSet

      public UnionSet(IObservableSet<? extends E>[] childSets)
      Parameters:
      childSets - the sets that form this union
    • UnionSet

      public UnionSet(Set<IObservableSet<? extends E>> childSets)
      Parameters:
      childSets - the sets that form this union
      Since:
      1.6
    • UnionSet

      public UnionSet(IObservableSet<? extends E>[] childSets, Object elementType)
      Parameters:
      childSets - the sets that form this union
      elementType - explicit element type for the child set elements
      Since:
      1.2
    • UnionSet

      public UnionSet(Set<IObservableSet<? extends E>> childSets, Object elementType)
      Parameters:
      childSets - the sets that form this union
      elementType - explicit element type for the child set elements
      Since:
      1.6
  • Method Details

    • isStale

      public boolean isStale()
      Description copied from interface: IObservable
      Returns whether the state of this observable is stale and is expected to change soon. A non-stale observable that becomes stale will notify its stale listeners. A stale object that becomes non-stale does so by changing its state and notifying its change listeners, it does not notify its stale listeners about becoming non-stale. Clients that do not expect asynchronous changes may ignore staleness of observable objects.
      Specified by:
      isStale in interface IObservable
      Overrides:
      isStale in class ObservableSet<E>
      Returns:
      Returns the stale state.
    • firstListenerAdded

      protected void firstListenerAdded()
    • lastListenerRemoved

      protected void lastListenerRemoved()
    • getterCalled

      protected void getterCalled()
      Overrides:
      getterCalled in class ObservableSet<E>
    • addListener

      protected void addListener(Object listenerType, IObservablesListener listener)
      Parameters:
      listenerType - arbitrary object to identify a type of the listener
      listener - the listener to add; not null
    • removeListener

      protected void removeListener(Object listenerType, IObservablesListener listener)
      Parameters:
      listenerType - arbitrary object to identify a type of the listener
      listener - the listener to remove; not null
    • hasListeners

      protected boolean hasListeners()
    • fireEvent

      protected void fireEvent(ObservableEvent event)
    • getRealm

      public Realm getRealm()
      Returns:
      Returns the realm.
    • clone

      protected Object clone() throws CloneNotSupportedException
      Overrides:
      clone in class Object
      Throws:
      CloneNotSupportedException