Package org.eclipse.core.databinding.observable.set

## Interface IObservableSet<E>

Type Parameters:
  `E` - the type of the elements in this set

All Superinterfaces:
  `Collection<E>`, `IObservable`, `IObservableCollection<E>`, `Iterable<E>`, `Set<E>`

All Known Subinterfaces:
  `IViewerObservableSet<E>`

All Known Implementing Classes:
  `AbstractObservableSet`, `ComputedSet`, `DecoratingObservableSet`, `ListToSetAdapter`, `MappedSet`, `ObservableSet`, `UnionSet`, `WritableSet`

    public interface IObservableSet<E>
    extends Set<E>, IObservableCollection<E>

A set whose changes can be tracked by set change listeners.

Since:
  1.0
See Also:
  `AbstractObservableSet`, `ObservableSet`
Restriction:
  This interface is not intended to be implemented by clients. Clients should instead subclass one of the classes that implement this interface.

  Authors of extensions to the databinding framework may extend this interface and indirectly implement it, but if doing so must also extend one of the framework classes. (Use an API problem filter to suppress the resulting warning.)

  Direct implementers of this interface outside of the framework will be broken in future releases when methods are added to this interface.

### Method Summary

All Methods Instance Methods Abstract Methods
`boolean` `add​(E o)`
`boolean` `addAll​(Collection<? extends E> c)`
`void` `addSetChangeListener​(ISetChangeListener<? super E> listener)`
`boolean` `contains​(Object o)`
`boolean` `containsAll​(Collection<?> c)`
`boolean` `equals​(Object o)`
`Object` `getElementType()` Returns the element type of this observable collection, or `null` if this observable collection is untyped.
`int` `hashCode()`
`boolean` `isEmpty()`
`Iterator<E>` `iterator()`
`boolean` `remove​(Object o)`
`boolean` `removeAll​(Collection<?> c)`
`void` `removeSetChangeListener​(ISetChangeListener<? super E> listener)`
`boolean` `retainAll​(Collection<?> c)`
`int` `size()`
`Object[]` `toArray()`
`<T> T[]` `toArray​(T[] a)`

### Methods inherited from interface java.util.Collection

`parallelStream, removeIf, stream, toArray`

### Methods inherited from interface org.eclipse.core.databinding.observable.IObservable

`addChangeListener, addDisposeListener, addStaleListener, dispose, getRealm, isDisposed, isStale, removeChangeListener, removeDisposeListener, removeStaleListener`

### Methods inherited from interface java.lang.Iterable

`forEach`

### Methods inherited from interface java.util.Set

`clear, spliterator`

### Method Detail

#### addSetChangeListener

    void addSetChangeListener​(ISetChangeListener<? super E> listener)

Parameters:
  `listener` - the change listener to add; not `null`

#### removeSetChangeListener

    void removeSetChangeListener​(ISetChangeListener<? super E> listener)

Parameters:
  `listener` - the change listener to remove; not `null`

#### getElementType

    Object getElementType()

Description copied from interface: `IObservableCollection`
Returns the element type of this observable collection, or `null` if this observable collection is untyped.

Specified by:
  `getElementType` in interface `IObservableCollection<E>`
Returns:
  the element type or `null` if untyped

#### size

    int size()

Specified by:
  `size` in interface `Collection<E>`
Specified by:
  `size` in interface `Set<E>`
"TrackedGetter"

#### isEmpty

    boolean isEmpty()

Specified by:
  `isEmpty` in interface `Collection<E>`
Specified by:
  `isEmpty` in interface `Set<E>`
"TrackedGetter"

#### contains

    boolean contains​(Object o)

Specified by:
  `contains` in interface `Collection<E>`
Specified by:
  `contains` in interface `Set<E>`
"TrackedGetter"

#### iterator

    Iterator<E> iterator()

Specified by:
  `iterator` in interface `Collection<E>`
Specified by:
  `iterator` in interface `Iterable<E>`
Specified by:
  `iterator` in interface `Set<E>`
"TrackedGetter"

#### toArray

    Object[] toArray()

Specified by:
  `toArray` in interface `Collection<E>`
Specified by:
  `toArray` in interface `Set<E>`
"TrackedGetter"

#### toArray

    <T> T[] toArray​(T[] a)

Specified by:
  `toArray` in interface `Collection<E>`
Specified by:
  `toArray` in interface `Set<E>`
"TrackedGetter"

#### add

    boolean add​(E o)

Specified by:
  `add` in interface `Collection<E>`
Specified by:
  `add` in interface `Set<E>`
"TrackedGetter"

#### remove

    boolean remove​(Object o)

Specified by:
  `remove` in interface `Collection<E>`
Specified by:
  `remove` in interface `Set<E>`
"TrackedGetter"

#### containsAll

    boolean containsAll​(Collection<?> c)

Specified by:
  `containsAll` in interface `Collection<E>`
Specified by:
  `containsAll` in interface `Set<E>`
"TrackedGetter"

#### addAll

    boolean addAll​(Collection<? extends E> c)

Specified by:
  `addAll` in interface `Collection<E>`
Specified by:
  `addAll` in interface `Set<E>`
"TrackedGetter"

#### retainAll

    boolean retainAll​(Collection<?> c)

Specified by:
  `retainAll` in interface `Collection<E>`
Specified by:
  `retainAll` in interface `Set<E>`
"TrackedGetter"

#### removeAll

    boolean removeAll​(Collection<?> c)

Specified by:
  `removeAll` in interface `Collection<E>`
Specified by:
  `removeAll` in interface `Set<E>`
"TrackedGetter"

#### equals

    boolean equals​(Object o)

Specified by:
  `equals` in interface `Collection<E>`
Specified by:
  `equals` in interface `Set<E>`
Overrides:
  `equals` in class `Object`
"TrackedGetter"

#### hashCode

    int hashCode()

Specified by:
  `hashCode` in interface `Collection<E>`
Specified by:
  `hashCode` in interface `Set<E>`
Overrides:
  `hashCode` in class `Object`
"TrackedGetter"