# Package org.eclipse.core.databinding.observable.value

Provides classes that can be used to observe changes in discrete values.

## Package Specification

This package provides classes that can be used to observe changes in discrete values.

Interface Summary
IObservableValue<T>: A value whose changes can be tracked by value change listeners.
IValueChangeListener<T>: Listener for changes to observable values.
IValueChangingListener<T>: Listener for pre-change events for observable values.
IVetoableValue<T>: An observable value whose changes can be vetoed by listeners.

Class Summary
AbstractObservableValue<T>: This class is thread safe.
AbstractVetoableValue<T>: This class is thread safe.
ComputedValue<T>: A Lazily calculated value that automatically computes and registers listeners on its dependencies as long as all of its dependencies are `IObservable` objects.
DateAndTimeObservableValue: An `IObservableValue` < `Date` > which supports scenarios where the date and time are presented as separate elements in the user interface.
DecoratingObservableValue<T>: An observable value which decorates another observable value.
DecoratingVetoableValue<T>: An `IVetoableValue` decorator for an observable value.
DuplexingObservableValue<T>
SelectObservableValue<T>: An observable value which behaves similarly to the <select> and <option> HTML tags.
ValueChangeEvent<T>: Value change event describing a change of an `IObservableValue` object's current value.
ValueChangingEvent<T>: Value changing event describing a pending change of an `IObservableValue` object's current value.
ValueDiff<T>
WritableValue<T>: Mutable (writable) implementation of `IObservableValue` that will maintain a value and fire change events when the value changes.

Exception Summary
ChangeVetoException