# Interface IVetoableValue<T>

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

All Superinterfaces:
  `IObservable, IObservableValue<T>`

All Known Implementing Classes:
  `AbstractVetoableValue, DecoratingVetoableValue`

public interface IVetoableValue<T> extends IObservableValue<T>
An observable value whose changes can be vetoed by listeners.

Since:
  1.0
Restriction:
  This interface is not intended to be implemented by clients. Clients should instead subclass one of the classes that implement this interface. Note that direct implementers of this interface outside of the framework will be broken in future releases when methods are added to this interface.
Restriction:
  This interface is not intended to be extended by clients.

## Method Summary

Modifier and Type
Method
Description
`void`
`addValueChangingListener(IValueChangingListener<T> listener)`
`void`
`removeValueChangingListener(IValueChangingListener<T> listener)`

### Methods inherited from interface IObservable

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

### Methods inherited from interface IObservableValue

`addValueChangeListener, getValue, getValueType, removeValueChangeListener, setValue`

## Method Details

### addValueChangingListener

void addValueChangingListener(IValueChangingListener<T> listener)

Parameters:
  `listener` - the listener to add; not `null`

### removeValueChangingListener

void removeValueChangingListener(IValueChangingListener<T> listener)

Parameters:
  `listener` - the listener to remove; not `null`