Package io.github.mmm.value.observable
Class AbstractObservableValue<V>
java.lang.Object
io.github.mmm.event.AbstractEventSource<ObservableEvent<V>,ObservableEventListener<? super V>>
io.github.mmm.value.observable.AbstractObservableValue<V>
- Type Parameters:
V
- type of the observablevalue
.
- All Implemented Interfaces:
EventSource<ObservableEvent<V>,
,ObservableEventListener<? super V>> ObservableValue<V>
,ReadableValue<V>
,Supplier<V>
- Direct Known Subclasses:
AbstractWritableObservableValue
,Binding
public abstract class AbstractObservableValue<V>
extends AbstractEventSource<ObservableEvent<V>,ObservableEventListener<? super V>>
implements ObservableValue<V>
Abstract base implementation of
ObservableValue
that handles ObservableEventListener
s.- Since:
- 1.0.0
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addListener
(ObservableEventListener<? super V> listener, boolean weak) protected void
fireChange
(Object change) Fires a defaultvalue change
event.protected void
Fires a default value change event.protected void
fireEvent
(ObservableEvent<V> event) protected void
fireEventFor
(AbstractObservableValue<?> observable) protected <T> void
fireEventFor
(AbstractObservableValue<T> observable, ObservableEvent<T> event) protected void
fireEventWithOldValue
(V oldValue) Fires a default value change event if theold value
is known (currently available anyhow).protected boolean
protected void
Invalidates this observable in case it's value is computed.boolean
removeListener
(ObservableEventListener<? super V> listener) final String
toString()
void
Methods inherited from class io.github.mmm.event.AbstractEventSource
getEventAdapter, hasListeners
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface io.github.mmm.event.EventSource
addListener, addWeakListener
Methods inherited from interface io.github.mmm.value.ReadableValue
get, getSafe
-
Constructor Details
-
AbstractObservableValue
public AbstractObservableValue()The constructor.
-
-
Method Details
-
addListener
- Specified by:
addListener
in interfaceEventSource<ObservableEvent<V>,
ObservableEventListener<? super V>> - Overrides:
addListener
in classAbstractEventSource<ObservableEvent<V>,
ObservableEventListener<? super V>>
-
removeListener
- Specified by:
removeListener
in interfaceEventSource<ObservableEvent<V>,
ObservableEventListener<? super V>> - Overrides:
removeListener
in classAbstractEventSource<ObservableEvent<V>,
ObservableEventListener<? super V>>
-
hasChangeAwareListeners
protected boolean hasChangeAwareListeners()- Returns:
true
if at least oneChangeAwareObservableEventListener
isregistered
,false
otherwise (to avoid building andsending
change
s for better performance).
-
fireEvent
protected void fireEvent()Fires a default value change event.- See Also:
-
fireEventWithOldValue
Fires a default value change event if theold value
is known (currently available anyhow).- Parameters:
oldValue
- theold value
. May benull
.- See Also:
-
fireChange
Fires a defaultvalue change
event.- Parameters:
change
- thechange
.- See Also:
-
fireEvent
- Overrides:
fireEvent
in classAbstractEventSource<ObservableEvent<V>,
ObservableEventListener<? super V>>
-
fireEventFor
- Type Parameters:
T
- type of the observable value.- Parameters:
observable
- theAbstractObservableValue
where to invokefireEvent(ObservableEvent)
(if prevented due to visibility issues).event
- theObservableEvent
to send.
-
fireEventFor
- Parameters:
observable
- theAbstractObservableValue
where to invokefireEvent()
(if prevented due to visibility issues).
-
invalidate
protected void invalidate()Invalidates this observable in case it's value is computed. -
toString
-
toString
- Specified by:
toString
in interfaceObservableValue<V>
- Parameters:
sb
- theStringBuilder
where to append the details of this property fortoString()
-Representation.
-