Class AbstractObservableValue<T>
- java.lang.Object
-
- org.eclipse.core.databinding.observable.AbstractObservable
-
- org.eclipse.core.databinding.observable.value.AbstractObservableValue<T>
-
- Type Parameters:
T- the type of value being observed
- All Implemented Interfaces:
IObservable,IObservableValue<T>
- Direct Known Subclasses:
AbstractVetoableValue,ComputedValue,DateAndTimeObservableValue,DuplexingObservableValue,SelectObservableValue,WritableValue
public abstract class AbstractObservableValue<T> extends AbstractObservable implements IObservableValue<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 Constructor Description AbstractObservableValue()Constructs a new instance with the default realm.AbstractObservableValue(Realm realm)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidaddListener(Object listenerType, IObservablesListener listener)voidaddValueChangeListener(IValueChangeListener<? super T> listener)protected Objectclone()protected abstract TdoGetValue()protected voiddoSetValue(T value)Template method for setting the value of the observable.protected voidfireChange()protected voidfireEvent(ObservableEvent event)protected voidfireValueChange(ValueDiff<T> diff)protected voidfirstListenerAdded()RealmgetRealm()TgetValue()Returns the value.protected booleanhasListeners()booleanisStale()Returns whether the state of this observable is stale and is expected to change soon.protected voidlastListenerRemoved()protected voidremoveListener(Object listenerType, IObservablesListener listener)voidremoveValueChangeListener(IValueChangeListener<? super T> listener)voidsetValue(T value)Sets the value.-
Methods inherited from class org.eclipse.core.databinding.observable.AbstractObservable
addChangeListener, addDisposeListener, addStaleListener, checkRealm, dispose, fireStale, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.core.databinding.observable.IObservable
addChangeListener, addDisposeListener, addStaleListener, dispose, getRealm, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener
-
Methods inherited from interface org.eclipse.core.databinding.observable.value.IObservableValue
getValueType
-
-
-
-
Constructor Detail
-
AbstractObservableValue
public AbstractObservableValue()
Constructs a new instance with the default realm.
-
AbstractObservableValue
public AbstractObservableValue(Realm realm)
- Parameters:
realm-
-
-
Method Detail
-
addValueChangeListener
public void addValueChangeListener(IValueChangeListener<? super T> listener)
- Specified by:
addValueChangeListenerin interfaceIObservableValue<T>
-
removeValueChangeListener
public void removeValueChangeListener(IValueChangeListener<? super T> listener)
- Specified by:
removeValueChangeListenerin interfaceIObservableValue<T>
-
setValue
public final void setValue(T value)
Description copied from interface:IObservableValueSets the value. Must be invoked in theRealmof the observable.- Specified by:
setValuein interfaceIObservableValue<T>- Parameters:
value- the value to set
-
doSetValue
protected void doSetValue(T value)
Template method for setting the value of the observable. By default the method throws anUnsupportedOperationException.- Parameters:
value-
-
getValue
public final T getValue()
Description copied from interface:IObservableValueReturns the value. Must be invoked in theRealmof the observable.- Specified by:
getValuein interfaceIObservableValue<T>- Returns:
- the current value
-
doGetValue
protected abstract T doGetValue()
-
isStale
public boolean isStale()
Description copied from interface:IObservableReturns whether the state of this observable is stale and is expected to change soon. A non-stale observable that becomes stale will notify its stale listeners. A stale object that becomes non-stale does so by changing its state and notifying its change listeners, it does not notify its stale listeners about becoming non-stale. Clients that do not expect asynchronous changes may ignore staleness of observable objects.- Specified by:
isStalein interfaceIObservable- Returns:
- true if this observable's state is stale and will change soon.
-
fireChange
protected void fireChange()
- Overrides:
fireChangein classAbstractObservable
-
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)
-
firstListenerAdded
protected void firstListenerAdded()
-
lastListenerRemoved
protected void lastListenerRemoved()
-
getRealm
public Realm getRealm()
- Returns:
- Returns the realm.
-
clone
protected Object clone() throws CloneNotSupportedException
- Overrides:
clonein classObject- Throws:
CloneNotSupportedException
-
-