/** * Copyright 2014 Netflix, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ package rx; import static rx.util.functions.Functions.*; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import rx.joins.Pattern2; import rx.joins.Plan0; import rx.observables.BlockingObservable; import rx.observables.ConnectableObservable; import rx.observables.GroupedObservable; import rx.operators.OperationAll; import rx.operators.OperationAmb; import rx.operators.OperationAny; import rx.operators.OperationAsObservable; import rx.operators.OperationAverage; import rx.operators.OperationBuffer; import rx.operators.OperationCache; import rx.operators.OperationCombineLatest; import rx.operators.OperationConcat; import rx.operators.OperationDebounce; import rx.operators.OperationDefaultIfEmpty; import rx.operators.OperationDefer; import rx.operators.OperationDelay; import rx.operators.OperationDematerialize; import rx.operators.OperationDistinct; import rx.operators.OperationDistinctUntilChanged; import rx.operators.OperationDoOnEach; import rx.operators.OperationElementAt; import rx.operators.OperationFilter; import rx.operators.OperationFinally; import rx.operators.OperationFlatMap; import rx.operators.OperationGroupByUntil; import rx.operators.OperationGroupJoin; import rx.operators.OperationInterval; import rx.operators.OperationJoin; import rx.operators.OperationJoinPatterns; import rx.operators.OperationMaterialize; import rx.operators.OperationMergeDelayError; import rx.operators.OperationMinMax; import rx.operators.OperationMulticast; import rx.operators.OperationObserveOn; import rx.operators.OperationOnErrorResumeNextViaFunction; import rx.operators.OperationOnErrorResumeNextViaObservable; import rx.operators.OperationOnErrorReturn; import rx.operators.OperationOnExceptionResumeNextViaObservable; import rx.operators.OperationParallelMerge; import rx.operators.OperationRepeat; import rx.operators.OperationReplay; import rx.operators.OperationRetry; import rx.operators.OperationSample; import rx.operators.OperationScan; import rx.operators.OperationSequenceEqual; import rx.operators.OperationSingle; import rx.operators.OperationSkip; import rx.operators.OperationSkipLast; import rx.operators.OperationSkipUntil; import rx.operators.OperationSkipWhile; import rx.operators.OperationSubscribeOn; import rx.operators.OperationSum; import rx.operators.OperationSwitch; import rx.operators.OperationSynchronize; import rx.operators.OperationTakeLast; import rx.operators.OperationTakeUntil; import rx.operators.OperationTakeWhile; import rx.operators.OperationThrottleFirst; import rx.operators.OperationTimeInterval; import rx.operators.OperationTimeout; import rx.operators.OperationTimer; import rx.operators.OperationToMap; import rx.operators.OperationToMultimap; import rx.operators.OperationToObservableFuture; import rx.operators.OperationUsing; import rx.operators.OperationWindow; import rx.operators.OperationZip; import rx.operators.OperatorCast; import rx.operators.OperatorFromIterable; import rx.operators.OperatorGroupBy; import rx.operators.OperatorMap; import rx.operators.OperatorMerge; import rx.operators.OperatorParallel; import rx.operators.OperatorTake; import rx.operators.OperatorTakeTimed; import rx.operators.OperatorTimestamp; import rx.operators.OperatorToObservableList; import rx.operators.OperatorToObservableSortedList; import rx.operators.SafeObservableSubscription; import rx.operators.SafeObserver; import rx.plugins.RxJavaObservableExecutionHook; import rx.plugins.RxJavaPlugins; import rx.schedulers.Schedulers; import rx.subjects.AsyncSubject; import rx.subjects.BehaviorSubject; import rx.subjects.PublishSubject; import rx.subjects.ReplaySubject; import rx.subjects.Subject; import rx.subscriptions.CompositeSubscription; import rx.subscriptions.Subscriptions; import rx.util.OnErrorNotImplementedException; import rx.util.Range; import rx.util.TimeInterval; import rx.util.Timestamped; import rx.util.functions.Action0; import rx.util.functions.Action1; import rx.util.functions.Action2; import rx.util.functions.Func0; import rx.util.functions.Func1; import rx.util.functions.Func2; import rx.util.functions.Func3; import rx.util.functions.Func4; import rx.util.functions.Func5; import rx.util.functions.Func6; import rx.util.functions.Func7; import rx.util.functions.Func8; import rx.util.functions.Func9; import rx.util.functions.FuncN; import rx.util.functions.Function; import rx.util.functions.Functions; /** * The Observable class that implements the Reactive Pattern. *
* This class provides methods for subscribing to the Observable as well as delegate methods to the * various operators. *
* The documentation for this class makes use of marble diagrams. The following legend explains * these diagrams: *
*
*
* For more information see the
* RxJava Wiki
*
* @param
* Note: Use {@link #create(OnSubscribeFunc)} to create an Observable, instead of this
* constructor, unless you specifically have a need for inheritance.
*
* @param onSubscribe
* {@link OnSubscribeFunc} to be executed when {@link #subscribe(Observer)} is called
*/
protected Observable(Action1
*
* Write the function you pass to {@code create} so that it behaves as an Observable: It should
* invoke the Observer's {@link Observer#onNext onNext}, {@link Observer#onError onError}, and {@link Observer#onCompleted onCompleted} methods appropriately.
*
* A well-formed Observable must invoke either the Observer's {@code onCompleted} method
* exactly once or its {@code onError} method exactly once.
*
* See Rx Design Guidelines (PDF)
* for detailed information.
*
* @param
*
* Write the function you pass to {@code create} so that it behaves as an Observable: It should
* invoke the Observer's {@link Observer#onNext onNext}, {@link Observer#onError onError}, and {@link Observer#onCompleted onCompleted} methods appropriately.
*
* A well-formed Observable must invoke either the Observer's {@code onCompleted} method
* exactly once or its {@code onError} method exactly once.
*
* See Rx Design Guidelines (PDF)
* for detailed information.
*
* @param
* In other words, this allows chaining operators together on an Observable for acting on the values within the Observable.
*
* {@code
* observable.map(...).filter(...).take(5).bind(new OperatorA()).bind(new OperatorB(...)).subscribe()
* }
*
* @param bind
* @return an Observable that emits values that are the result of applying the bind function to the values of the current Observable
*/
public
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
* The defer operator allows you to defer or delay emitting items from an Observable until such
* time as an Observer subscribes to the Observable. This allows an {@link Observer} to easily
* obtain updates or a refreshed version of the sequence.
*
* @param observableFactory
* the Observable factory function to invoke for each {@link Observer} that
* subscribes to the resulting Observable
* @param
*
*
*
*
*
* You can convert any object that supports the {@link Future} interface into an Observable that
* emits the return value of the {@link Future#get} method of that object, by passing the object
* into the {@code from} method.
*
* Important note: This Observable is blocking; you cannot unsubscribe from it.
*
* @param future
* the source {@link Future}
* @param
*
* You can convert any object that supports the {@link Future} interface into an Observable that
* emits the return value of the {@link Future#get} method of that object, by passing the object
* into the {@code from} method.
*
* Important note: This Observable is blocking; you cannot unsubscribe from it.
*
* @param future
* the source {@link Future}
* @param timeout
* the maximum time to wait before calling {@code get()}
* @param unit
* the {@link TimeUnit} of the {@code timeout} argument
* @param
*
* You can convert any object that supports the {@link Future} interface into an Observable that
* emits the return value of the {@link Future#get} method of that object, by passing the object
* into the {@code from} method.
*
*
* @param future
* the source {@link Future}
* @param scheduler
* the {@link Scheduler} to wait for the Future on. Use a Scheduler such as {@link Schedulers#threadPoolForIO()} that can block and wait on the future.
* @param
*
* Note: the entire iterable sequence is immediately emitted each time an {@link Observer} subscribes. Since this occurs before the {@link Subscription} is returned, it is not possible
* to unsubscribe from the sequence before it completes.
*
* @param iterable
* the source {@link Iterable} sequence
* @param
*
*
* Note: the item is immediately emitted each time an {@link Observer} subscribes. Since this
* occurs before the {@link Subscription} is returned, it is not possible to unsubscribe from
* the sequence before it completes.
*
* @param t1
* the item
* @param
*
* Note: the items will be immediately emitted each time an {@link Observer} subscribes. Since
* this occurs before the {@link Subscription} is returned, it is not possible to unsubscribe
* from the sequence before it completes.
*
* @param t1
* first item
* @param t2
* second item
* @param
*
* Note: the items will be immediately emitted each time an {@link Observer} subscribes. Since
* this occurs before the {@link Subscription} is returned, it is not possible to unsubscribe
* from the sequence before it completes.
*
* @param t1
* first item
* @param t2
* second item
* @param t3
* third item
* @param
*
* Note: the items will be immediately emitted each time an {@link Observer} subscribes. Since
* this occurs before the {@link Subscription} is returned, it is not possible to unsubscribe
* from the sequence before it completes.
*
* @param t1
* first item
* @param t2
* second item
* @param t3
* third item
* @param t4
* fourth item
* @param
*
* Note: the items will be immediately emitted each time an {@link Observer} subscribes. Since
* this occurs before the {@link Subscription} is returned, it is not possible to unsubscribe
* from the sequence before it completes.
*
* @param t1
* first item
* @param t2
* second item
* @param t3
* third item
* @param t4
* fourth item
* @param t5
* fifth item
* @param
*
* Note: the items will be immediately emitted each time an {@link Observer} subscribes. Since
* this occurs before the {@link Subscription} is returned, it is not possible to unsubscribe
* from the sequence before it completes.
*
* @param t1
* first item
* @param t2
* second item
* @param t3
* third item
* @param t4
* fourth item
* @param t5
* fifth item
* @param t6
* sixth item
* @param
*
* Note: the items will be immediately emitted each time an {@link Observer} subscribes. Since
* this occurs before the {@link Subscription} is returned, it is not possible to unsubscribe
* from the sequence before it completes.
*
* @param t1
* first item
* @param t2
* second item
* @param t3
* third item
* @param t4
* fourth item
* @param t5
* fifth item
* @param t6
* sixth item
* @param t7
* seventh item
* @param
*
* Note: the items will be immediately emitted each time an {@link Observer} subscribes. Since
* this occurs before the {@link Subscription} is returned, it is not possible to unsubscribe
* from the sequence before it completes.
*
* @param t1
* first item
* @param t2
* second item
* @param t3
* third item
* @param t4
* fourth item
* @param t5
* fifth item
* @param t6
* sixth item
* @param t7
* seventh item
* @param t8
* eighth item
* @param
*
* Note: the items will be immediately emitted each time an {@link Observer} subscribes. Since
* this occurs before the {@link Subscription} is returned, it is not possible to unsubscribe
* from the sequence before it completes.
*
* @param t1
* first item
* @param t2
* second item
* @param t3
* third item
* @param t4
* fourth item
* @param t5
* fifth item
* @param t6
* sixth item
* @param t7
* seventh item
* @param t8
* eighth item
* @param t9
* ninth item
* @param
*
*
* @param t1
* first item
* @param t2
* second item
* @param t3
* third item
* @param t4
* fourth item
* @param t5
* fifth item
* @param t6
* sixth item
* @param t7
* seventh item
* @param t8
* eighth item
* @param t9
* ninth item
* @param t10
* tenth item
* @param
*
* Note: the entire array is immediately emitted each time an {@link Observer} subscribes. Since this occurs before the {@link Subscription} is returned, it is not possible
* to unsubscribe from the sequence before it completes.
*
* @param items
* the source array
* @param
*
* Note: the entire array is immediately emitted each time an {@link Observer} subscribes. Since this occurs before the {@link Subscription} is returned, it is not
* possible to unsubscribe from the sequence before it completes.
*
* @param items
* the source array
* @param scheduler
* the scheduler on which the Observable emits the items of the array
* @param
*
*
*
* To convert any object into an Observable that emits that object, pass that object into the {@code just} method.
*
* This is similar to the {@link #from(java.lang.Object[])} method, except that {@code from()} will convert an {@link Iterable} object into an Observable that emits each of the items in
* the Iterable, one at a time, while the {@code just()} method converts an Iterable into an
* Observable that emits the entire Iterable as a single item.
*
* @param value
* the item to emit
* @param
*
* This is a scheduler version of {@link #just(Object)}.
*
* @param value
* the item to emit
* @param
*
*
* You can combine the items emitted by multiple Observables so that they appear as a single
* Observable, by using the {@code merge} method.
*
* @param sequences
* the Iterable of Observables
* @return an Observable that emits items that are the result of flattening the items emitted by
* the Observables in the Iterable
* @see RxJava Wiki: merge()
* @see MSDN: Observable.Merge
*/
public final static
*
* You can combine the items emitted by multiple Observables so that they appear as a single
* Observable, by using the {@code merge} method.
*
* @param sequences
* the Iterable of Observables
* @param maxConcurrent
* the maximum number of Observables that may be subscribed to concurrently
* @return an Observable that emits items that are the result of flattening the items emitted by
* the Observables in the Iterable
* @throw IllegalArgumentException if {@code maxConcurrent} is less than or equal to 0
* @see RxJava Wiki: merge()
* @see MSDN: Observable.Merge
*/
public final static
*
* You can combine the items emitted by multiple Observables so that they appear as a single
* Observable, by using the {@code merge} method.
*
* @param sequences
* the Iterable of Observables
* @param maxConcurrent
* the maximum number of Observables that may be subscribed to concurrently
* @param scheduler
* the scheduler on which to traverse the Iterable of Observables
* @return an Observable that emits items that are the result of flattening the items emitted by
* the Observables in the Iterable
* @throw IllegalArgumentException if {@code maxConcurrent} is less than or equal to 0
* @see RxJava Wiki: merge()
* @see MSDN: Observable.Merge
*/
public final static
*
* You can combine the items emitted by multiple Observables so that they appear as a single
* Observable, by using the {@code merge} method.
*
* @param sequences
* the Iterable of Observables
* @param scheduler
* the scheduler on which to traverse the Iterable of Observables
* @return an Observable that emits items that are the result of flattening the items emitted by
* the Observables in the Iterable
* @see RxJava Wiki: merge()
* @see MSDN: Observable.Merge
*/
public final static
*
* You can combine the items emitted by multiple Observables so that they appear as a single
* Observable, by using the {@code merge} method.
*
* @param source
* an Observable that emits Observables
* @return an Observable that emits items that are the result of flattening the Observables
* emitted by the {@code source} Observable
* @see RxJava Wiki: merge()
* @see MSDN: Observable.Merge
*/
public final static
*
* You can combine the items emitted by multiple Observables so that they appear as a single
* Observable, by using the {@code merge} method.
*
* @param source
* an Observable that emits Observables
* @param maxConcurrent
* the maximum number of Observables that may be subscribed to concurrently
* @return an Observable that emits items that are the result of flattening the Observables
* emitted by the {@code source} Observable
* @throw IllegalArgumentException if {@code maxConcurrent} is less than or equal to 0
* @see RxJava Wiki: merge()
* @see MSDN: Observable.Merge
*/
public final static
*
* You can combine items emitted by multiple Observables so that they appear as a single
* Observable, by using the {@code merge} method.
*
* @param t1
* an Observable to be merged
* @param t2
* an Observable to be merged
* @return an Observable that emits all of the items emitted by the source Observables
* @see RxJava Wiki: merge()
* @see MSDN: Observable.Merge
*/
public final static
*
* You can combine items emitted by multiple Observables so that they appear as a single
* Observable, by using the {@code merge} method.
*
* @param t1
* an Observable to be merged
* @param t2
* an Observable to be merged
* @param t3
* an Observable to be merged
* @return an Observable that emits all of the items emitted by the source Observables
* @see RxJava Wiki: merge()
* @see MSDN: Observable.Merge
*/
public final static
*
*
*
* @param sources
* an Iterable of Observable sources competing to react first
* @return an Observable that emits the same sequence of items as whichever of the source
* Observables first emitted an item
* @see RxJava Wiki: amb()
* @see MSDN: Observable.Amb
*/
public final static
*
* @param o1
* an Observable competing to react first
* @param o2
* an Observable competing to react first
* @return an Observable that emits the same sequence of items as whichever of the source
* Observables first emitted an item
* @see RxJava Wiki: amb()
* @see MSDN: Observable.Amb
*/
public final static
*
* @param o1
* an Observable competing to react first
* @param o2
* an Observable competing to react first
* @param o3
* an Observable competing to react first
* @return an Observable that emits the same sequence of items as whichever of the source
* Observables first emitted an item
* @see RxJava Wiki: amb()
* @see MSDN: Observable.Amb
*/
public final static
*
* @param o1
* an Observable competing to react first
* @param o2
* an Observable competing to react first
* @param o3
* an Observable competing to react first
* @param o4
* an Observable competing to react first
* @return an Observable that emits the same sequence of items as whichever of the source
* Observables first emitted an item
* @see RxJava Wiki: amb()
* @see MSDN: Observable.Amb
*/
public final static
*
* @param o1
* an Observable competing to react first
* @param o2
* an Observable competing to react first
* @param o3
* an Observable competing to react first
* @param o4
* an Observable competing to react first
* @param o5
* an Observable competing to react first
* @return an Observable that emits the same sequence of items as whichever of the source
* Observables first emitted an item
* @see RxJava Wiki: amb()
* @see MSDN: Observable.Amb
*/
public final static
*
* @param o1
* an Observable competing to react first
* @param o2
* an Observable competing to react first
* @param o3
* an Observable competing to react first
* @param o4
* an Observable competing to react first
* @param o5
* an Observable competing to react first
* @param o6
* an Observable competing to react first
* @return an Observable that emits the same sequence of items as whichever of the source
* Observables first emitted an item
* @see RxJava Wiki: amb()
* @see MSDN: Observable.Amb
*/
public final static
*
* @param o1
* an Observable competing to react first
* @param o2
* an Observable competing to react first
* @param o3
* an Observable competing to react first
* @param o4
* an Observable competing to react first
* @param o5
* an Observable competing to react first
* @param o6
* an Observable competing to react first
* @param o7
* an Observable competing to react first
* @return an Observable that emits the same sequence of items as whichever of the source
* Observables first emitted an item
* @see RxJava Wiki: amb()
* @see MSDN: Observable.Amb
*/
public final static
*
* @param o1
* an Observable competing to react first
* @param o2
* an Observable competing to react first
* @param o3
* an Observable competing to react first
* @param o4
* an Observable competing to react first
* @param o5
* an Observable competing to react first
* @param o6
* an Observable competing to react first
* @param o7
* an Observable competing to react first
* @param o8
* an observable competing to react first
* @return an Observable that emits the same sequence of items as whichever of the source
* Observables first emitted an item
* @see RxJava Wiki: amb()
* @see MSDN: Observable.Amb
*/
public final static
*
* @param o1
* an Observable competing to react first
* @param o2
* an Observable competing to react first
* @param o3
* an Observable competing to react first
* @param o4
* an Observable competing to react first
* @param o5
* an Observable competing to react first
* @param o6
* an Observable competing to react first
* @param o7
* an Observable competing to react first
* @param o8
* an Observable competing to react first
* @param o9
* an Observable competing to react first
* @return an Observable that emits the same sequence of items as whichever of the source
* Observables first emitted an item
* @see RxJava Wiki: amb()
* @see MSDN: Observable.Amb
*/
public final static
*
* @param source
* source Observable to compute the average of
* @return an Observable that emits a single item: the average of all the Doubles emitted
* by the source Observable
* @see RxJava Wiki: averageDouble()
* @see MSDN: Observable.Average
*/
public final static Observable
*
* @param source
* source Observable to compute the average of
* @return an Observable that emits a single item: the average of all the Floats emitted by
* the source Observable
* @see RxJava Wiki: averageFloat()
* @see MSDN: Observable.Average
*/
public final static Observable
*
* @param source
* source Observable to compute the average of
* @return an Observable that emits a single item: the average of all the Integers emitted
* by the source Observable
* @throws IllegalArgumentException
* if the source Observable emits no items
* @see RxJava Wiki: averageInteger()
* @see MSDN: Observable.Average
*/
public final static Observable
*
* @param source
* source Observable to compute the average of
* @return an Observable that emits a single item: the average of all the Longs emitted by
* the source Observable
* @see RxJava Wiki: averageLong()
* @see MSDN: Observable.Average
*/
public final static Observable
*
* @param o1
* the first source Observable
* @param o2
* the second source Observable
* @param combineFunction
* the aggregation function used to combine the items emitted by the source
* Observables
* @return an Observable that emits items that are the result of combining the items emitted by
* the source Observables by means of the given aggregation function
* @see RxJava Wiki: combineLatest()
*/
public final static
*
* @param o1
* the first source Observable
* @param o2
* the second source Observable
* @param o3
* the third source Observable
* @param combineFunction
* the aggregation function used to combine the items emitted by the source
* Observables
* @return an Observable that emits items that are the result of combining the items emitted by
* the source Observables by means of the given aggregation function
* @see RxJava Wiki: combineLatest()
*/
public final static
*
* @param o1
* the first source Observable
* @param o2
* the second source Observable
* @param o3
* the third source Observable
* @param o4
* the fourth source Observable
* @param combineFunction
* the aggregation function used to combine the items emitted by the source
* Observables
* @return an Observable that emits items that are the result of combining the items emitted by
* the source Observables by means of the given aggregation function
* @see RxJava Wiki: combineLatest()
*/
public final static
*
* @param o1
* the first source Observable
* @param o2
* the second source Observable
* @param o3
* the third source Observable
* @param o4
* the fourth source Observable
* @param o5
* the fifth source Observable
* @param combineFunction
* the aggregation function used to combine the items emitted by the source
* Observables
* @return an Observable that emits items that are the result of combining the items emitted by
* the source Observables by means of the given aggregation function
* @see RxJava Wiki: combineLatest()
*/
public final static
*
* @param o1
* the first source Observable
* @param o2
* the second source Observable
* @param o3
* the third source Observable
* @param o4
* the fourth source Observable
* @param o5
* the fifth source Observable
* @param o6
* the sixth source Observable
* @param combineFunction
* the aggregation function used to combine the items emitted by the source
* Observables
* @return an Observable that emits items that are the result of combining the items emitted by
* the source Observables by means of the given aggregation function
* @see RxJava Wiki: combineLatest()
*/
public final static
*
* @param o1
* the first source Observable
* @param o2
* the second source Observable
* @param o3
* the third source Observable
* @param o4
* the fourth source Observable
* @param o5
* the fifth source Observable
* @param o6
* the sixth source Observable
* @param o7
* the seventh source Observable
* @param combineFunction
* the aggregation function used to combine the items emitted by the source
* Observables
* @return an Observable that emits items that are the result of combining the items emitted by
* the source Observables by means of the given aggregation function
* @see RxJava Wiki: combineLatest()
*/
public final static
*
* @param o1
* the first source Observable
* @param o2
* the second source Observable
* @param o3
* the third source Observable
* @param o4
* the fourth source Observable
* @param o5
* the fifth source Observable
* @param o6
* the sixth source Observable
* @param o7
* the seventh source Observable
* @param o8
* the eighth source Observable
* @param combineFunction
* the aggregation function used to combine the items emitted by the source
* Observables
* @return an Observable that emits items that are the result of combining the items emitted by
* the source Observables by means of the given aggregation function
* @see RxJava Wiki: combineLatest()
*/
public final static
*
* @param o1
* the first source Observable
* @param o2
* the second source Observable
* @param o3
* the third source Observable
* @param o4
* the fourth source Observable
* @param o5
* the fifth source Observable
* @param o6
* the sixth source Observable
* @param o7
* the seventh source Observable
* @param o8
* the eighth source Observable
* @param o9
* the ninth source Observable
* @param combineFunction
* the aggregation function used to combine the items emitted by the source
* Observables
* @return an Observable that emits items that are the result of combining the items emitted by
* the source Observables by means of the given aggregation function
* @see RxJava Wiki: combineLatest()
*/
public final static
*
* @param observables
* an Observable that emits Observables
* @return an Observable that emits items all of the items emitted by the Observables emitted by {@code observables}, one after the other, without interleaving them
* @see RxJava Wiki: concat()
* @see MSDN: Observable.Concat
*/
public final static
*
* @param t1
* an Observable to be concatenated
* @param t2
* an Observable to be concatenated
* @return an Observable that emits items emitted by the two source Observables, one after the
* other, without interleaving them
* @see RxJava Wiki: concat()
* @see MSDN: Observable.Concat
*/
@SuppressWarnings("unchecked")
// suppress because the types are checked by the method signature before using a vararg
public final static
*
* @param t1
* an Observable to be concatenated
* @param t2
* an Observable to be concatenated
* @param t3
* an Observable to be concatenated
* @return an Observable that emits items emitted by the three source Observables, one after the
* other, without interleaving them
* @see RxJava Wiki: concat()
* @see MSDN: Observable.Concat
*/
@SuppressWarnings("unchecked")
// suppress because the types are checked by the method signature before using a vararg
public final static
*
* @param t1
* an Observable to be concatenated
* @param t2
* an Observable to be concatenated
* @param t3
* an Observable to be concatenated
* @param t4
* an Observable to be concatenated
* @return an Observable that emits items emitted by the four source Observables, one after the
* other, without interleaving them
* @see RxJava Wiki: concat()
* @see MSDN: Observable.Concat
*/
@SuppressWarnings("unchecked")
// suppress because the types are checked by the method signature before using a vararg
public final static
*
* @param t1
* an Observable to be concatenated
* @param t2
* an Observable to be concatenated
* @param t3
* an Observable to be concatenated
* @param t4
* an Observable to be concatenated
* @param t5
* an Observable to be concatenated
* @return an Observable that emits items emitted by the five source Observables, one after the
* other, without interleaving them
* @see RxJava Wiki: concat()
* @see MSDN: Observable.Concat
*/
@SuppressWarnings("unchecked")
// suppress because the types are checked by the method signature before using a vararg
public final static
*
* @param t1
* an Observable to be concatenated
* @param t2
* an Observable to be concatenated
* @param t3
* an Observable to be concatenated
* @param t4
* an Observable to be concatenated
* @param t5
* an Observable to be concatenated
* @param t6
* an Observable to be concatenated
* @return an Observable that emits items emitted by the six source Observables, one after the
* other, without interleaving them
* @see RxJava Wiki: concat()
* @see MSDN: Observable.Concat
*/
@SuppressWarnings("unchecked")
// suppress because the types are checked by the method signature before using a vararg
public final static
*
* @param t1
* an Observable to be concatenated
* @param t2
* an Observable to be concatenated
* @param t3
* an Observable to be concatenated
* @param t4
* an Observable to be concatenated
* @param t5
* an Observable to be concatenated
* @param t6
* an Observable to be concatenated
* @param t7
* an Observable to be concatenated
* @return an Observable that emits items emitted by the seven source Observables, one after the
* other, without interleaving them
* @see RxJava Wiki: concat()
* @see MSDN: Observable.Concat
*/
@SuppressWarnings("unchecked")
// suppress because the types are checked by the method signature before using a vararg
public final static
*
* @param t1
* an Observable to be concatenated
* @param t2
* an Observable to be concatenated
* @param t3
* an Observable to be concatenated
* @param t4
* an Observable to be concatenated
* @param t5
* an Observable to be concatenated
* @param t6
* an Observable to be concatenated
* @param t7
* an Observable to be concatenated
* @param t8
* an Observable to be concatenated
* @return an Observable that emits items emitted by the eight source Observables, one after the
* other, without interleaving them
* @see RxJava Wiki: concat()
* @see MSDN: Observable.Concat
*/
@SuppressWarnings("unchecked")
// suppress because the types are checked by the method signature before using a vararg
public final static
*
* @param t1
* an Observable to be concatenated
* @param t2
* an Observable to be concatenated
* @param t3
* an Observable to be concatenated
* @param t4
* an Observable to be concatenated
* @param t5
* an Observable to be concatenated
* @param t6
* an Observable to be concatenated
* @param t7
* an Observable to be concatenated
* @param t8
* an Observable to be concatenated
* @param t9
* an Observable to be concatenated
* @return an Observable that emits items emitted by the nine source Observables, one after the
* other, without interleaving them
* @see RxJava Wiki: concat()
* @see MSDN: Observable.Concat
*/
@SuppressWarnings("unchecked")
// suppress because the types are checked by the method signature before using a vararg
public final static
*
*
* @param
*
* @param scheduler
* the scheduler to use to call the {@link Observer#onCompleted onCompleted} method
* @param
*
* @param exception
* the particular Throwable to pass to {@link Observer#onError onError}
* @param
*
* @param exception
* the particular Throwable to pass to {@link Observer#onError onError}
* @param scheduler
* the scheduler on which to call {@link Observer#onError onError}
* @param
*
*
*
*
*
* @param iterable
* the source {@link Iterable} sequence
* @param scheduler
* the scheduler on which the Observable is to emit the items of the iterable
* @param
*
*
*
*
*
*
*
*
*
*
*
*
*
* @param interval
* interval size in time units (see below)
* @param unit
* time units to use for the interval size
* @return an Observable that emits a sequential number each time interval
* @see RxJava Wiki: interval()
* @see MSDN: Observable.Interval
*/
public final static Observable
*
* @param interval
* interval size in time units (see below)
* @param unit
* time units to use for the interval size
* @param scheduler
* the scheduler to use for scheduling the items
* @return an Observable that emits a sequential number each time interval
* @see RxJava Wiki: interval()
* @see MSDN: Observable.Interval
*/
public final static Observable
*
*
*
* @param source
* an Observable to scan for the maximum emitted item
* @return an Observable that emits this maximum item
* @throws IllegalArgumentException
* if the source is empty
* @see RxJava Wiki: max()
* @see MSDN: Observable.Max
*/
public final static
*
*
*
*
*
*
*
*