Class AbstractVetoableValue<T>
java.lang.Object
org.eclipse.core.databinding.observable.AbstractObservable
org.eclipse.core.databinding.observable.value.AbstractObservableValue<T>
org.eclipse.core.databinding.observable.value.AbstractVetoableValue<T>
- Type Parameters:
T- the type of value being observed
- All Implemented Interfaces:
IObservable, IObservableValue<T>, IVetoableValue<T>
public abstract class AbstractVetoableValue<T>
extends AbstractObservableValue<T>
implements IVetoableValue<T>
This class is thread safe. All state accessing methods must be invoked from
the current realm. Methods for adding and removing
listeners may be invoked from any thread.
- Since:
- 1.0
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddListener(Object listenerType, IObservablesListener listener) voidaddValueChangingListener(IValueChangingListener<T> listener) protected Objectclone()protected abstract voiddoSetApprovedValue(T value) Sets the value.protected final voiddoSetValue(T value) Template method for setting the value of the observable.protected voidfireEvent(ObservableEvent event) protected booleanfireValueChanging(ValueDiff<T> diff) Notifies listeners about a pending change, and returns true if no listener vetoed the change.protected voidgetRealm()protected booleanprotected voidprotected voidremoveListener(Object listenerType, IObservablesListener listener) voidremoveValueChangingListener(IValueChangingListener<T> listener) Methods inherited from class AbstractObservableValue
addValueChangeListener, doGetValue, fireChange, fireValueChange, getValue, isStale, removeValueChangeListener, setValueMethods inherited from class AbstractObservable
addChangeListener, addDisposeListener, addStaleListener, checkRealm, dispose, fireStale, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListenerMethods inherited from class Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface IObservable
addChangeListener, addDisposeListener, addStaleListener, dispose, getRealm, isDisposed, isStale, removeChangeListener, removeDisposeListener, removeStaleListenerMethods inherited from interface IObservableValue
addValueChangeListener, getValue, getValueType, removeValueChangeListener, setValue
-
Constructor Details
-
AbstractVetoableValue
public AbstractVetoableValue()Creates a new vetoable value. -
AbstractVetoableValue
- Parameters:
realm- the realm
-
-
Method Details
-
doSetValue
Description copied from class:AbstractObservableValueTemplate method for setting the value of the observable. By default the method throws anUnsupportedOperationException.- Overrides:
doSetValuein classAbstractObservableValue<T>- Parameters:
value- the value to set
-
doSetApprovedValue
Sets the value. Invoked after performing veto checks. Should not fire change events.- Parameters:
value- the approved value to set
-
addValueChangingListener
- Specified by:
addValueChangingListenerin interfaceIVetoableValue<T>- Parameters:
listener- the listener to add; notnull
-
removeValueChangingListener
- Specified by:
removeValueChangingListenerin interfaceIVetoableValue<T>- Parameters:
listener- the listener to remove; notnull
-
fireValueChanging
-
addListener
- Parameters:
listenerType- arbitrary object to identify a type of the listenerlistener- the listener to add; notnull
-
removeListener
- Parameters:
listenerType- arbitrary object to identify a type of the listenerlistener- the listener to remove; notnull
-
hasListeners
protected boolean hasListeners() -
fireEvent
-
firstListenerAdded
protected void firstListenerAdded() -
lastListenerRemoved
protected void lastListenerRemoved() -
getRealm
- Returns:
- Returns the realm.
-
clone
- Overrides:
clonein classObject- Throws:
CloneNotSupportedException
-