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
,LocalDateTimeObservableValue
,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
- Implementation Note:
- If methods are added to the interface which this class implements then implementations of those methods must be added to this class.
-
Constructor Summary
ConstructorDescriptionConstructs a new instance with the default realm.AbstractObservableValue
(Realm realm) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addListener
(Object listenerType, IObservablesListener listener) void
addValueChangeListener
(IValueChangeListener<? super T> listener) protected Object
clone()
protected abstract T
protected void
doSetValue
(T value) Template method for setting the value of the observable.protected void
protected void
fireEvent
(ObservableEvent event) protected void
fireValueChange
(ValueDiff<T> diff) protected void
getRealm()
final T
getValue()
Returns the value.protected boolean
boolean
isStale()
Returns whether the state of this observable is stale and is expected to change soon.protected void
protected void
removeListener
(Object listenerType, IObservablesListener listener) void
removeValueChangeListener
(IValueChangeListener<? super T> listener) final void
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 Details
-
AbstractObservableValue
public AbstractObservableValue()Constructs a new instance with the default realm. -
AbstractObservableValue
- Parameters:
realm
- the realm to use; notnull
-
-
Method Details
-
addValueChangeListener
- Specified by:
addValueChangeListener
in interfaceIObservableValue<T>
- Parameters:
listener
- the change listener to add; notnull
-
removeValueChangeListener
- Specified by:
removeValueChangeListener
in interfaceIObservableValue<T>
- Parameters:
listener
- the change listener to remove; notnull
-
setValue
Description copied from interface:IObservableValue
Sets the value. Must be invoked in theRealm
of the observable.- Specified by:
setValue
in interfaceIObservableValue<T>
- Parameters:
value
- the value to set
-
doSetValue
Template method for setting the value of the observable. By default the method throws anUnsupportedOperationException
.- Parameters:
value
- the value to set
-
fireValueChange
-
getValue
Description copied from interface:IObservableValue
Returns the value. Must be invoked in theRealm
of the observable.- Specified by:
getValue
in interfaceIObservableValue<T>
- Returns:
- the current value
-
doGetValue
-
isStale
public boolean isStale()Description copied from interface:IObservable
Returns 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:
isStale
in interfaceIObservable
- Returns:
- true if this observable's state is stale and will change soon.
-
fireChange
protected void fireChange()- Overrides:
fireChange
in classAbstractObservable
-
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:
clone
in classObject
- Throws:
CloneNotSupportedException
-