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 Detail

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

      • 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()
      • 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()
      • getRealm

        public Realm getRealm()
        Returns:
        Returns the realm.