T - the element type of the observable.public class DefaultObservable<T> extends java.lang.Object implements Subject<T,T>, CloseableObservable<T>
The implementation is thread safe: all default methods may be invoked from any thread. Could be used as a default implementation to convert between Observable and other event-listener type pattern.
The observer keeps track of the registered observer count and when
it reaches zero again, the last deregister will invoke the close() method.
Override close() method if you need some resource cleanup. Note that this may happen on any thread.
The constructor lets you customize whether automatically deregister every observer after an error or finish message is relayed.
| Constructor and Description |
|---|
DefaultObservable()
Default constructor.
|
DefaultObservable(boolean unregisterOnFinish,
boolean unregisterOnError)
Constructor with the option to set the unregistration policies.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
void |
error(java.lang.Throwable ex)
An exception is received.
|
void |
finish()
No more values to expect.
|
int |
getObserverCount() |
void |
next(T value)
The next value is received.
|
java.io.Closeable |
register(Observer<? super T> observer)
Registers an observer for the notification of Ts.
|
protected void |
unregister(java.io.Closeable handler)
Unregister the observer belonging to the given handler.
|
public DefaultObservable()
public DefaultObservable(boolean unregisterOnFinish,
boolean unregisterOnError)
unregisterOnFinish - unregister all observers on a finish() call?unregisterOnError - unregister all observers on an error() call?public void error(@Nonnull
java.lang.Throwable ex)
BaseObservererror in interface BaseObserverex - the exceptionpublic void finish()
BaseObserverfinish in interface BaseObserverpublic void next(T value)
Observer@Nonnull
public java.io.Closeable register(@Nonnull
Observer<? super T> observer)
Observableregister in interface Observable<T>observer - the observer of Ts or any supertype of itprotected void unregister(java.io.Closeable handler)
handler - the observer's handlerpublic void close()
close in interface java.io.Closeableclose in interface java.lang.AutoCloseablepublic int getObserverCount()