# Class DecoratingVetoableValue<T>

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

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

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

public class DecoratingVetoableValue<T> extends DecoratingObservableValue<T> implements IVetoableValue<T>
An `IVetoableValue` decorator for an observable value.

Since:
  1.2

## Constructor Summary

Constructors
Constructor
Description
`DecoratingVetoableValue(IObservableValue<T> decorated, boolean disposeDecoratedOnDispose)`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`addListener(Object listenerType, IObservablesListener listener)`
`void`
`addValueChangingListener(IValueChangingListener<T> listener)`
`protected Object`
`clone()`
`protected void`
`fireEvent(ObservableEvent event)`
`protected boolean`
`fireValueChanging(ValueDiff<T> diff)`
Notifies listeners about a pending change, and returns true if no listener vetoed the change.
`Realm`
`getRealm()`
`protected boolean`
`hasListeners()`
`protected void`
`removeListener(Object listenerType, IObservablesListener listener)`
`void`
`removeValueChangingListener(IValueChangingListener<T> listener)`
`void`
`setValue(T value)`
Sets the value.

### Methods inherited from class DecoratingObservableValue

`addValueChangeListener, dispose, fireChange, fireValueChange, firstListenerAdded, getValue, getValueType, handleValueChange, lastListenerRemoved, removeValueChangeListener`

### Methods inherited from class DecoratingObservable

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

### Methods inherited from class AbstractObservable

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

### Methods inherited from class Object

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

### Methods inherited from interface IObservable

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

### Methods inherited from interface IObservableValue

`addValueChangeListener, getValue, getValueType, removeValueChangeListener`

## Constructor Details

### DecoratingVetoableValue

public DecoratingVetoableValue(IObservableValue<T> decorated, boolean disposeDecoratedOnDispose)

Parameters:
  `decorated` - the observable value being decorated
  `disposeDecoratedOnDispose` - whether the decorated observable should be disposed when the decorator is disposed

## Method Details

### 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>`
Overrides:
  `setValue` in class `DecoratingObservableValue<T>`
Parameters:
  `value` - the value to set

### addValueChangingListener

public void addValueChangingListener(IValueChangingListener<T> listener)

Specified by:
  `addValueChangingListener` in interface `IVetoableValue<T>`
Parameters:
  `listener` - the listener to add; not `null`

### removeValueChangingListener

public void removeValueChangingListener(IValueChangingListener<T> listener)

Specified by:
  `removeValueChangingListener` in interface `IVetoableValue<T>`
Parameters:
  `listener` - the listener to remove; not `null`

### fireValueChanging

protected boolean fireValueChanging(ValueDiff<T> diff)
Notifies listeners about a pending change, and returns true if no listener vetoed the change.

Parameters:
  `diff` - the pending change
Returns:
  false if the change was vetoed, true otherwise

### addListener

protected void addListener(Object listenerType, IObservablesListener listener)

Parameters:
  `listenerType` - arbitrary object to identify a type of the listener
  `listener` - the listener to add; not `null`

### removeListener

protected void removeListener(Object listenerType, IObservablesListener listener)

Parameters:
  `listenerType` - arbitrary object to identify a type of the listener
  `listener` - the listener to remove; not `null`

### 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`