Module javafx.base
Package javafx.beans.binding

## Class SetExpression<E>

- java.lang.Object
- - javafx.beans.binding.SetExpression<E>

- Type Parameters:
    `E` - the type of the `Set` elements
  All Implemented Interfaces:
    `Iterable<E>`, `Collection<E>`, `Set<E>`, `Observable`, `ObservableObjectValue<ObservableSet<E>>`, `ObservableSetValue<E>`, `ObservableValue<ObservableSet<E>>`, `ObservableSet<E>`
  Direct Known Subclasses:
    `ReadOnlySetProperty`, `SetBinding`

      public abstract class SetExpression<E>
      extends Object
      implements ObservableSetValue<E>

  `SetExpression` is an `ObservableSetValue` plus additional convenience methods to generate bindings in a fluent style.

  A concrete sub-class of `SetExpression` has to implement the method `ObservableObjectValue.get()`, which provides the actual value of this expression.

  If the wrapped list of a `SetExpression` is `null`, all methods implementing the `Set` interface will behave as if they were applied to an immutable empty set.

  Since:
    JavaFX 2.1

- - ### Property Summary

    Properties
    Type | Property | Description
    --- | --- | ---
    `abstract ReadOnlyBooleanProperty` | `empty` | A boolean property that is `true`, if the set is empty.
    `abstract ReadOnlyIntegerProperty` | `size` | An integer property that represents the size of the set.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SetExpression()` |

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `add​(E element)` |
    `boolean` | `addAll​(Collection<? extends E> elements)` |
    `StringBinding` | `asString()` | Creates a `StringBinding` that holds the value of the `SetExpression` turned into a `String`.
    `void` | `clear()` |
    `boolean` | `contains​(Object obj)` |
    `boolean` | `containsAll​(Collection<?> objects)` |
    `abstract ReadOnlyBooleanProperty` | `emptyProperty()` | A boolean property that is `true`, if the set is empty.
    `int` | `getSize()` | The size of the set
    `ObservableSet<E>` | `getValue()` | Returns the current value of this `ObservableValue`
    `boolean` | `isEmpty()` | Gets the value of the property empty.
    `BooleanBinding` | `isEqualTo​(ObservableSet<?> other)` | Creates a new `BooleanBinding` that holds `true` if this set is equal to another `ObservableSet`.
    `BooleanBinding` | `isNotEqualTo​(ObservableSet<?> other)` | Creates a new `BooleanBinding` that holds `true` if this set is not equal to another `ObservableSet`.
    `BooleanBinding` | `isNotNull()` | Creates a new `BooleanBinding` that holds `true` if the wrapped set is not `null`.
    `BooleanBinding` | `isNull()` | Creates a new `BooleanBinding` that holds `true` if the wrapped set is `null`.
    `Iterator<E>` | `iterator()` |
    `boolean` | `remove​(Object obj)` |
    `boolean` | `removeAll​(Collection<?> objects)` |
    `boolean` | `retainAll​(Collection<?> objects)` |
    `static <E> SetExpression<E>` | `setExpression​(ObservableSetValue<E> value)` | Returns a `SetExpression` that wraps a `ObservableSetValue`.
    `int` | `size()` |
    `abstract ReadOnlyIntegerProperty` | `sizeProperty()` | An integer property that represents the size of the set.
    `Object[]` | `toArray()` |
    `<T> T[]` | `toArray​(T[] array)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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

      `parallelStream, removeIf, stream, toArray`

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

      `forEach`

    - ### Methods inherited from interface javafx.beans.Observable

      `addListener, removeListener`

    - ### Methods inherited from interface javafx.beans.value.ObservableObjectValue

      `get`

    - ### Methods inherited from interface javafx.collections.ObservableSet

      `addListener, removeListener`

    - ### Methods inherited from interface javafx.beans.value.ObservableValue

      `addListener, removeListener`

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

      `equals, hashCode, spliterator`

- - ### Property Detail

    - #### size

          public abstract ReadOnlyIntegerProperty sizeProperty

      An integer property that represents the size of the set.
      See Also:
        `getSize()`

    - #### empty

          public abstract ReadOnlyBooleanProperty emptyProperty

      A boolean property that is `true`, if the set is empty.
      See Also:
        `isEmpty()`

  - ### Constructor Detail

    - #### SetExpression

          public SetExpression()

  - ### Method Detail

    - #### getValue

          public ObservableSet<E> getValue()

      Description copied from interface: `ObservableValue`
      Returns the current value of this `ObservableValue`
      Specified by:
        `getValue` in interface `ObservableValue<E>`
      Returns:
        The current value

    - #### setExpression

          public static <E> SetExpression<E> setExpression​(ObservableSetValue<E> value)

      Returns a `SetExpression` that wraps a `ObservableSetValue`. If the `ObservableSetValue` is already a `SetExpression`, it will be returned. Otherwise a new `SetBinding` is created that is bound to the `ObservableSetValue`.
      Type Parameters:
        `E` - the type of the `Set` elements
      Parameters:
        `value` - The source `ObservableSetValue`
      Returns:
        A `SetExpression` that wraps the `ObservableSetValue` if necessary
      Throws:
        `NullPointerException` - if `value` is `null`

    - #### getSize

          public int getSize()

      The size of the set
      Returns:
        the size

    - #### sizeProperty

          public abstract ReadOnlyIntegerProperty sizeProperty()

      An integer property that represents the size of the set.
      See Also:
        `getSize()`

    - #### emptyProperty

          public abstract ReadOnlyBooleanProperty emptyProperty()

      A boolean property that is `true`, if the set is empty.
      See Also:
        `isEmpty()`

    - #### isEqualTo

          public BooleanBinding isEqualTo​(ObservableSet<?> other)

      Creates a new `BooleanBinding` that holds `true` if this set is equal to another `ObservableSet`.
      Parameters:
        `other` - the other `ObservableSet`
      Returns:
        the new `BooleanBinding`
      Throws:
        `NullPointerException` - if `other` is `null`

    - #### isNotEqualTo

          public BooleanBinding isNotEqualTo​(ObservableSet<?> other)

      Creates a new `BooleanBinding` that holds `true` if this set is not equal to another `ObservableSet`.
      Parameters:
        `other` - the other `ObservableSet`
      Returns:
        the new `BooleanBinding`
      Throws:
        `NullPointerException` - if `other` is `null`

    - #### isNull

          public BooleanBinding isNull()

      Creates a new `BooleanBinding` that holds `true` if the wrapped set is `null`.
      Returns:
        the new `BooleanBinding`

    - #### isNotNull

          public BooleanBinding isNotNull()

      Creates a new `BooleanBinding` that holds `true` if the wrapped set is not `null`.
      Returns:
        the new `BooleanBinding`

    - #### asString

          public StringBinding asString()

      Creates a `StringBinding` that holds the value of the `SetExpression` turned into a `String`. If the value of this `SetExpression` changes, the value of the `StringBinding` will be updated automatically.
      Returns:
        the new `StringBinding`

    - #### size

          public int size()

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

    - #### isEmpty

          public boolean isEmpty()

      Gets the value of the property empty.
      Specified by:
        `isEmpty` in interface `Collection<E>`
      Specified by:
        `isEmpty` in interface `Set<E>`
      Property description:
        A boolean property that is `true`, if the set is empty.

    - #### contains

          public boolean contains​(Object obj)

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

    - #### iterator

          public Iterator<E> iterator()

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

    - #### toArray

          public Object[] toArray()

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

    - #### toArray

          public <T> T[] toArray​(T[] array)

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

    - #### add

          public boolean add​(E element)

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

    - #### remove

          public boolean remove​(Object obj)

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

    - #### containsAll

          public boolean containsAll​(Collection<?> objects)

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

    - #### addAll

          public boolean addAll​(Collection<? extends E> elements)

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

    - #### removeAll

          public boolean removeAll​(Collection<?> objects)

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

    - #### retainAll

          public boolean retainAll​(Collection<?> objects)

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

    - #### clear

          public void clear()

      Specified by:
        `clear` in interface `Collection<E>`
      Specified by:
        `clear` in interface `Set<E>`