# Package org.eclipse.gef.common.beans.property

This package augments the property API of JavaFX by adding support related to `SetMultimap` and `Multiset`.

See: Description

Class Summary
MultisetProperty<E>: Abstract base class defining contract for a `Property` wrapping a `ObservableMultiset`.
MultisetPropertyBase<E>: Abstract base class for implementing a `Property` wrapping an `ObservableMultiset`.
ReadOnlyListPropertyBaseEx<E>: A replacement for `ReadOnlyListWrapper` to fix the following JavaFX issues: Change notifications are fired even when the observed value did not change.
ReadOnlyListWrapperEx<E>: A replacement for `ReadOnlyListWrapper` to fix the following JavaFX issues: Change notifications are fired even when the observed value did not change.
ReadOnlyMapPropertyBaseEx<K,V>: A replacement for `ReadOnlyMapWrapper` to fix the following JavaFX issues: All listeners were removed when removing one (https://bugs.openjdk.java.net/browse/JDK-8136465): fixed by keeping track of all listeners and ensuring that remaining listeners are re-added when a listener is removed.
ReadOnlyMapWrapperEx<K,V>: A replacement for `ReadOnlyMapWrapper` to fix the following JavaFX issues: All listeners were removed when removing one (https://bugs.openjdk.java.net/browse/JDK-8136465): fixed by keeping track of all listeners and ensuring that remaining listeners are re-added when a listener is removed.
ReadOnlyMultisetProperty<E>: Abstract base class defining contract for a read-only `Property` wrapping an `ObservableMultiset`.
ReadOnlyMultisetPropertyBase<E>: Abstract base class for implementing a read-only `Property` wrapping an `ObservableMultiset`.
ReadOnlyMultisetWrapper<E>: A `ReadOnlyMultisetWrapper` is a writable `Property` wrapping an `ObservableMultiset`, which provides an additional read-only `Property` (based on a concrete, non-exposed implementation of `ReadOnlyMultisetProperty`), whose value is synchronized with the value of this `ReadOnlyMapWrapper`.
ReadOnlySetMultimapProperty<K,V>: Abstract base class defining contract for a read-only `Property` wrapping an `ObservableSetMultimap`.
ReadOnlySetMultimapPropertyBase<K,V>: Abstract base class for implementing a read-only `Property` wrapping an `ObservableSetMultimap`.
ReadOnlySetMultimapWrapper<K,V>: A `ReadOnlySetMultimapWrapper` is a writable `Property` wrapping an `ObservableSetMultimap`, which provides an additional read-only `Property` (based on a concrete, non-exposed implementation of `ReadOnlySetMultimapProperty`), whose value is synchronized with the value of this `ReadOnlyMapWrapper`.
ReadOnlySetPropertyBaseEx<E>: A replacement for `ReadOnlySetWrapper` to fix the following JavaFX issues: Change notifications are fired even when the observed value did not change.
ReadOnlySetWrapperEx<E>: A replacement for `ReadOnlySetWrapper` to fix the following JavaFX issues: Change notifications are fired even when the observed value did not change.
SetMultimapProperty<K,V>: Abstract base class defining contract for a `Property` wrapping a `ObservableSetMultimap`.
SetMultimapPropertyBase<K,V>: Abstract base class for implementing a `Property` wrapping an `ObservableSetMultimap`.
SimpleListPropertyEx<E>: A replacement for `SimpleListProperty` to fix the following JavaFX issue: Change notifications are fired even when the observed value did not change.
SimpleMapPropertyEx<K,V>: A replacement for `SimpleMapProperty` to fix the following JavaFX issues: Change notifications are fired even when the observed value did not change.
SimpleMultisetProperty<E>: A concrete implementation of a `Property` wrapping an `ObservableMultiset`.
SimpleSetMultimapProperty<K,V>: A concrete implementation of a `Property` wrapping an `ObservableSetMultimap`.
SimpleSetPropertyEx<E>: A replacement for `SimpleSetProperty` to fix the following JavaFX issue: Change notifications are fired even when the observed value did not change.

## Package org.eclipse.gef.common.beans.property Description

This package augments the property API of JavaFX by adding support related to `SetMultimap` and `Multiset`.

It also provides replacements for `ReadOnlyMapWrapper`, `SimpleMapProperty`, `ReadOnlySetWrapper`, and `ReadOnlyListWrapper`, which fix the following issues:

- https://bugs.openjdk.java.net/browse/JDK-8136465: fixed by keeping track of all listeners and ensuring that remaining listeners are re-added when a listener is removed.
- https://bugs.openjdk.java.net/browse/JDK-8089557: fixed by not forwarding listeners to the read-only property but rather keeping the lists of listeners distinct.