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

## Class DecoratingObservableValue<T>

- java.lang.Object
- - org.eclipse.core.databinding.observable.AbstractObservable
  - - org.eclipse.core.databinding.observable.DecoratingObservable
    - - org.eclipse.core.databinding.observable.value.DecoratingObservableValue<T>

Type Parameters:
  `T` - the type of value being observed

All Implemented Interfaces:
  `IDecoratingObservable`, `IObservable`, `IObservableValue<T>`

Direct Known Subclasses:
  `DecoratingVetoableValue`

    public class DecoratingObservableValue<T>
    extends DecoratingObservable
    implements IObservableValue<T>

An observable value which decorates another observable value.

Since:
  1.2

### Constructor Summary

Constructors
`DecoratingObservableValue​(IObservableValue<T> decorated, boolean disposeDecoratedOnDispose)` Constructs a DecoratingObservableValue which decorates the given observable.

### Method Summary

All Methods Instance Methods Concrete Methods
`protected void` `addListener​(Object listenerType, IObservablesListener listener)`
`void` `addValueChangeListener​(IValueChangeListener<? super T> listener)`
`protected Object` `clone()`
`void` `dispose()` Disposes of this observable object, removing all listeners registered with this object, and all listeners this object might have registered on other objects.
`protected void` `fireChange()`
`protected void` `fireEvent​(ObservableEvent event)`
`protected void` `fireValueChange​(ValueDiff<T> diff)`
`protected void` `firstListenerAdded()`
`Realm` `getRealm()`
`T` `getValue()` Returns the value.
`Object` `getValueType()` The value type of this observable value, or `null` if this observable value is untyped.
`protected void` `handleValueChange​(ValueChangeEvent<? extends T> event)` Called whenever a ValueChangeEvent is received from the decorated observable.
`protected boolean` `hasListeners()`
`protected void` `lastListenerRemoved()`
`protected void` `removeListener​(Object listenerType, IObservablesListener listener)`
`void` `removeValueChangeListener​(IValueChangeListener<? super T> listener)`
`void` `setValue​(T value)` Sets the value.

### Methods inherited from class org.eclipse.core.databinding.observable.DecoratingObservable

`equals, getDecorated, getterCalled, handleStaleEvent, hashCode, isStale`

### Methods inherited from class org.eclipse.core.databinding.observable.AbstractObservable

`addChangeListener, addDisposeListener, addStaleListener, checkRealm, fireStale, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener`

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

`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

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

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

### Constructor Detail

#### DecoratingObservableValue

    public DecoratingObservableValue​(IObservableValue<T> decorated,
                                     boolean disposeDecoratedOnDispose)

Constructs a DecoratingObservableValue which decorates the given observable.

Parameters:
  `decorated` - the observable value being decorated
  `disposeDecoratedOnDispose` -

### Method Detail

#### addValueChangeListener

    public void addValueChangeListener​(IValueChangeListener<? super T> listener)

Specified by:
  `addValueChangeListener` in interface `IObservableValue<T>`

#### removeValueChangeListener

    public void removeValueChangeListener​(IValueChangeListener<? super T> listener)

Specified by:
  `removeValueChangeListener` in interface `IObservableValue<T>`

#### fireValueChange

    protected void fireValueChange​(ValueDiff<T> diff)

#### fireChange

    protected void fireChange()

Overrides:
  `fireChange` in class `AbstractObservable`

#### firstListenerAdded

    protected void firstListenerAdded()

Overrides:
  `firstListenerAdded` in class `DecoratingObservable`

#### lastListenerRemoved

    protected void lastListenerRemoved()

Overrides:
  `lastListenerRemoved` in class `DecoratingObservable`

#### handleValueChange

    protected void handleValueChange​(ValueChangeEvent<? extends T> event)

Called whenever a ValueChangeEvent is received from the decorated observable. By default, this method fires the value change event again, with the decorating observable as the event source. Subclasses may override to provide different behavior.

Parameters:
  `event` - the change event received from the decorated observable

#### getValue

    public T getValue()

Description copied from interface: `IObservableValue`
Returns the value. Must be invoked in the `Realm` of the observable.

Specified by:
  `getValue` in interface `IObservableValue<T>`
Returns:
  the current value

#### setValue

    public void setValue​(T value)

Description copied from interface: `IObservableValue`
Sets the value. Must be invoked in the `Realm` of the observable.

Specified by:
  `setValue` in interface `IObservableValue<T>`
Parameters:
  `value` - the value to set

#### getValueType

    public Object getValueType()

Description copied from interface: `IObservableValue`
The value type of this observable value, or `null` if this observable value is untyped.

Specified by:
  `getValueType` in interface `IObservableValue<T>`
Returns:
  the value type, or `null`

#### dispose

    public void dispose()

Description copied from interface: `IObservable`
Disposes of this observable object, removing all listeners registered with this object, and all listeners this object might have registered on other objects.

Specified by:
  `dispose` in interface `IObservable`
Overrides:
  `dispose` in class `DecoratingObservable`

#### addListener

    protected void addListener​(Object listenerType,
                               IObservablesListener listener)

Parameters:
  `listenerType` -
  `listener` -

#### removeListener

    protected void removeListener​(Object listenerType,
                                  IObservablesListener listener)

Parameters:
  `listenerType` -
  `listener` -

#### hasListeners

    protected boolean hasListeners()

#### fireEvent

    protected void fireEvent​(ObservableEvent event)

#### getRealm

    public Realm getRealm()

Returns:
  Returns the realm.

#### clone

    protected Object clone()
                    throws CloneNotSupportedException

Overrides:
  `clone` in class `Object`
Throws:
  `CloneNotSupportedException`