T - the type of item emitted by the BlockingObservablepublic final class BlockingObservable<T>
extends java.lang.Object
BlockingObservable is a variety of Observable that provides blocking operators. It can be
useful for testing and demo purposes, but is generally inappropriate for production applications (if you
think you need to use a BlockingObservable this is usually a sign that you should rethink your
design).
You construct a BlockingObservable from an Observable with from(Observable) or
Observable.toBlocking().
The documentation for this interface makes use of a form of marble diagram that has been modified to illustrate blocking operators. The following legend explains these marble diagrams:

| Modifier and Type | Method and Description |
|---|---|
T |
first()
Returns the first item emitted by this
BlockingObservable, or throws
NoSuchElementException if it emits no items. |
T |
first(Func1<? super T,java.lang.Boolean> predicate)
Returns the first item emitted by this
BlockingObservable that matches a predicate, or throws
NoSuchElementException if it emits no such item. |
T |
firstOrDefault(T defaultValue)
Returns the first item emitted by this
BlockingObservable, or a default value if it emits no
items. |
T |
firstOrDefault(T defaultValue,
Func1<? super T,java.lang.Boolean> predicate)
Returns the first item emitted by this
BlockingObservable that matches a predicate, or a default
value if it emits no such items. |
void |
forEach(Action1<? super T> onNext)
Invokes a method on each item emitted by this
BlockingObservable and blocks until the Observable
completes. |
static <T> BlockingObservable<T> |
from(Observable<? extends T> o)
Converts an
Observable into a BlockingObservable. |
java.util.Iterator<T> |
getIterator()
Returns an
Iterator that iterates over all items emitted by this BlockingObservable. |
T |
last()
Returns the last item emitted by this
BlockingObservable, or throws
NoSuchElementException if this BlockingObservable emits no items. |
T |
last(Func1<? super T,java.lang.Boolean> predicate)
Returns the last item emitted by this
BlockingObservable that matches a predicate, or throws
NoSuchElementException if it emits no such items. |
T |
lastOrDefault(T defaultValue)
Returns the last item emitted by this
BlockingObservable, or a default value if it emits no
items. |
T |
lastOrDefault(T defaultValue,
Func1<? super T,java.lang.Boolean> predicate)
Returns the last item emitted by this
BlockingObservable that matches a predicate, or a default
value if it emits no such items. |
java.lang.Iterable<T> |
latest()
Returns an
Iterable that returns the latest item emitted by this BlockingObservable,
waiting if necessary for one to become available. |
java.lang.Iterable<T> |
mostRecent(T initialValue)
Returns an
Iterable that always returns the item most recently emitted by this
BlockingObservable. |
java.lang.Iterable<T> |
next()
Returns an
Iterable that blocks until this BlockingObservable emits another item, then
returns that item. |
T |
single()
If this
BlockingObservable completes after emitting a single item, return that item, otherwise
throw a NoSuchElementException. |
T |
single(Func1<? super T,java.lang.Boolean> predicate)
If this
BlockingObservable completes after emitting a single item that matches a given predicate,
return that item, otherwise throw a NoSuchElementException. |
T |
singleOrDefault(T defaultValue)
If this
BlockingObservable completes after emitting a single item, return that item; if it emits
more than one item, throw an IllegalArgumentException; if it emits no items, return a default
value. |
T |
singleOrDefault(T defaultValue,
Func1<? super T,java.lang.Boolean> predicate)
If this
BlockingObservable completes after emitting a single item that matches a predicate,
return that item; if it emits more than one such item, throw an IllegalArgumentException; if it
emits no items, return a default value. |
void |
subscribe()
Runs the source observable to a terminal event, ignoring any values and rethrowing any exception.
|
void |
subscribe(Action1<? super T> onNext)
Subscribes to the source and calls the given action on the current thread and rethrows any exception wrapped
into OnErrorNotImplementedException.
|
void |
subscribe(Action1<? super T> onNext,
Action1<? super java.lang.Throwable> onError)
Subscribes to the source and calls the given actions on the current thread.
|
void |
subscribe(Action1<? super T> onNext,
Action1<? super java.lang.Throwable> onError,
Action0 onCompleted)
Subscribes to the source and calls the given actions on the current thread.
|
void |
subscribe(Observer<? super T> observer)
Subscribes to the source and calls back the Observer methods on the current thread.
|
void |
subscribe(Subscriber<? super T> subscriber)
Subscribes to the source and calls the Subscriber methods on the current thread.
|
java.util.concurrent.Future<T> |
toFuture()
Returns a
Future representing the single value emitted by this BlockingObservable. |
java.lang.Iterable<T> |
toIterable()
Converts this
BlockingObservable into an Iterable. |
public static <T> BlockingObservable<T> from(Observable<? extends T> o)
Observable into a BlockingObservable.T - the observed value typeo - the Observable you want to convertBlockingObservable version of opublic void forEach(Action1<? super T> onNext)
BlockingObservable and blocks until the Observable
completes.
Note: This will block even if the underlying Observable is asynchronous.
This is similar to Observable.subscribe(Subscriber), but it blocks. Because it blocks it does not
need the Observer.onCompleted() or Observer.onError(Throwable) methods. If the
underlying Observable terminates with an error, rather than calling onError, this method will
throw an exception.
The difference between this method and subscribe(Action1) is that the onNext action
is executed on the emission thread instead of the current thread.
onNext - the Action1 to invoke for each item emitted by the BlockingObservablejava.lang.RuntimeException - if an error occurssubscribe(Action1)public java.util.Iterator<T> getIterator()
Iterator that iterates over all items emitted by this BlockingObservable.

Iterator that can iterate over the items emitted by this BlockingObservablepublic T first()
BlockingObservable, or throws
NoSuchElementException if it emits no items.BlockingObservablejava.util.NoSuchElementException - if this BlockingObservable emits no itemspublic T first(Func1<? super T,java.lang.Boolean> predicate)
BlockingObservable that matches a predicate, or throws
NoSuchElementException if it emits no such item.predicate - a predicate function to evaluate items emitted by this BlockingObservableBlockingObservable that matches the predicatejava.util.NoSuchElementException - if this BlockingObservable emits no such itemspublic T firstOrDefault(T defaultValue)
BlockingObservable, or a default value if it emits no
items.defaultValue - a default value to return if this BlockingObservable emits no itemsBlockingObservable, or the default value if it emits no
itemspublic T firstOrDefault(T defaultValue, Func1<? super T,java.lang.Boolean> predicate)
BlockingObservable that matches a predicate, or a default
value if it emits no such items.defaultValue - a default value to return if this BlockingObservable emits no matching itemspredicate - a predicate function to evaluate items emitted by this BlockingObservableBlockingObservable that matches the predicate, or the
default value if this BlockingObservable emits no matching itemspublic T last()
BlockingObservable, or throws
NoSuchElementException if this BlockingObservable emits no items.

BlockingObservablejava.util.NoSuchElementException - if this BlockingObservable emits no itemspublic T last(Func1<? super T,java.lang.Boolean> predicate)
BlockingObservable that matches a predicate, or throws
NoSuchElementException if it emits no such items.

predicate - a predicate function to evaluate items emitted by the BlockingObservableBlockingObservable that matches the predicatejava.util.NoSuchElementException - if this BlockingObservable emits no itemspublic T lastOrDefault(T defaultValue)
BlockingObservable, or a default value if it emits no
items.

defaultValue - a default value to return if this BlockingObservable emits no itemsBlockingObservable, or the default value if it emits no
itemspublic T lastOrDefault(T defaultValue, Func1<? super T,java.lang.Boolean> predicate)
BlockingObservable that matches a predicate, or a default
value if it emits no such items.

defaultValue - a default value to return if this BlockingObservable emits no matching itemspredicate - a predicate function to evaluate items emitted by this BlockingObservableBlockingObservable that matches the predicate, or the
default value if it emits no matching itemspublic java.lang.Iterable<T> mostRecent(T initialValue)
Iterable that always returns the item most recently emitted by this
BlockingObservable.

initialValue - the initial value that the Iterable sequence will yield if this
BlockingObservable has not yet emitted an itemIterable that on each iteration returns the item that this BlockingObservable
has most recently emittedpublic java.lang.Iterable<T> next()
Iterable that blocks until this BlockingObservable emits another item, then
returns that item.

Iterable that blocks upon each iteration until this BlockingObservable emits
a new item, whereupon the Iterable returns that itempublic java.lang.Iterable<T> latest()
Iterable that returns the latest item emitted by this BlockingObservable,
waiting if necessary for one to become available.
If this BlockingObservable produces items faster than Iterator.next takes them,
onNext events might be skipped, but onError or onCompleted events are not.
Note also that an onNext directly followed by onCompleted might hide the onNext
event.
BlockingObservablepublic T single()
BlockingObservable completes after emitting a single item, return that item, otherwise
throw a NoSuchElementException.

BlockingObservablepublic T single(Func1<? super T,java.lang.Boolean> predicate)
BlockingObservable completes after emitting a single item that matches a given predicate,
return that item, otherwise throw a NoSuchElementException.

predicate - a predicate function to evaluate items emitted by this BlockingObservableBlockingObservable that matches the predicatepublic T singleOrDefault(T defaultValue)
BlockingObservable completes after emitting a single item, return that item; if it emits
more than one item, throw an IllegalArgumentException; if it emits no items, return a default
value.

defaultValue - a default value to return if this BlockingObservable emits no itemsBlockingObservable, or the default value if it emits no
itemspublic T singleOrDefault(T defaultValue, Func1<? super T,java.lang.Boolean> predicate)
BlockingObservable completes after emitting a single item that matches a predicate,
return that item; if it emits more than one such item, throw an IllegalArgumentException; if it
emits no items, return a default value.

defaultValue - a default value to return if this BlockingObservable emits no matching itemspredicate - a predicate function to evaluate items emitted by this BlockingObservableBlockingObservable that matches the predicate, or the
default value if no such items are emittedpublic java.util.concurrent.Future<T> toFuture()
Future representing the single value emitted by this BlockingObservable.
If BlockingObservable emits more than one item, Future will receive an
IllegalArgumentException. If BlockingObservable is empty, Future
will receive an NoSuchElementException.
If the BlockingObservable may emit more than one item, use Observable.toList().toBlocking().toFuture().

Future that expects a single item to be emitted by this BlockingObservablepublic java.lang.Iterable<T> toIterable()
BlockingObservable into an Iterable.

Iterable version of this BlockingObservablepublic void subscribe()
public void subscribe(Observer<? super T> observer)
observer - the observer to call event methods onpublic void subscribe(Subscriber<? super T> subscriber)
The unsubscription and backpressure is composed through.
subscriber - the subscriber to forward events and calls to in the current threadpublic void subscribe(Action1<? super T> onNext)
The difference between this method and forEach(Action1) is that the
action is always executed on the current thread.
onNext - the callback action for each source valueforEach(Action1)public void subscribe(Action1<? super T> onNext, Action1<? super java.lang.Throwable> onError)
onNext - the callback action for each source valueonError - the callback action for an error eventpublic void subscribe(Action1<? super T> onNext, Action1<? super java.lang.Throwable> onError, Action0 onCompleted)
onNext - the callback action for each source valueonError - the callback action for an error eventonCompleted - the callback action for the completion event.