diff --git a/src/main/java/rx/Single.java b/src/main/java/rx/Single.java index 2aad23fb9a..ede27c8eb6 100644 --- a/src/main/java/rx/Single.java +++ b/src/main/java/rx/Single.java @@ -244,7 +244,7 @@ public static interface Transformer extends Func1, Single> { * * @warn more complete description needed */ - private static Observable toObservable(Single t) { + private static Observable asObservable(Single t) { // is this sufficient, or do I need to keep the outer Single and subscribe to it? return Observable.create(t.onSubscribe); } @@ -265,7 +265,7 @@ private static Observable toObservable(Single t) { * @see ReactiveX operators documentation: To */ private final Single> nest() { - return Single.just(toObservable(this)); + return Single.just(asObservable(this)); } /* ********************************************************************************************************* @@ -290,7 +290,7 @@ private final Single> nest() { * @see ReactiveX operators documentation: Concat */ public final static Observable concat(Single t1, Single t2) { - return Observable.concat(toObservable(t1), toObservable(t2)); + return Observable.concat(asObservable(t1), asObservable(t2)); } /** @@ -312,7 +312,7 @@ public final static Observable concat(Single t1, SingleReactiveX operators documentation: Concat */ public final static Observable concat(Single t1, Single t2, Single t3) { - return Observable.concat(toObservable(t1), toObservable(t2), toObservable(t3)); + return Observable.concat(asObservable(t1), asObservable(t2), asObservable(t3)); } /** @@ -336,7 +336,7 @@ public final static Observable concat(Single t1, SingleReactiveX operators documentation: Concat */ public final static Observable concat(Single t1, Single t2, Single t3, Single t4) { - return Observable.concat(toObservable(t1), toObservable(t2), toObservable(t3), toObservable(t4)); + return Observable.concat(asObservable(t1), asObservable(t2), asObservable(t3), asObservable(t4)); } /** @@ -362,7 +362,7 @@ public final static Observable concat(Single t1, SingleReactiveX operators documentation: Concat */ public final static Observable concat(Single t1, Single t2, Single t3, Single t4, Single t5) { - return Observable.concat(toObservable(t1), toObservable(t2), toObservable(t3), toObservable(t4), toObservable(t5)); + return Observable.concat(asObservable(t1), asObservable(t2), asObservable(t3), asObservable(t4), asObservable(t5)); } /** @@ -390,7 +390,7 @@ public final static Observable concat(Single t1, SingleReactiveX operators documentation: Concat */ public final static Observable concat(Single t1, Single t2, Single t3, Single t4, Single t5, Single t6) { - return Observable.concat(toObservable(t1), toObservable(t2), toObservable(t3), toObservable(t4), toObservable(t5), toObservable(t6)); + return Observable.concat(asObservable(t1), asObservable(t2), asObservable(t3), asObservable(t4), asObservable(t5), asObservable(t6)); } /** @@ -420,7 +420,7 @@ public final static Observable concat(Single t1, SingleReactiveX operators documentation: Concat */ public final static Observable concat(Single t1, Single t2, Single t3, Single t4, Single t5, Single t6, Single t7) { - return Observable.concat(toObservable(t1), toObservable(t2), toObservable(t3), toObservable(t4), toObservable(t5), toObservable(t6), toObservable(t7)); + return Observable.concat(asObservable(t1), asObservable(t2), asObservable(t3), asObservable(t4), asObservable(t5), asObservable(t6), asObservable(t7)); } /** @@ -452,7 +452,7 @@ public final static Observable concat(Single t1, SingleReactiveX operators documentation: Concat */ public final static Observable concat(Single t1, Single t2, Single t3, Single t4, Single t5, Single t6, Single t7, Single t8) { - return Observable.concat(toObservable(t1), toObservable(t2), toObservable(t3), toObservable(t4), toObservable(t5), toObservable(t6), toObservable(t7), toObservable(t8)); + return Observable.concat(asObservable(t1), asObservable(t2), asObservable(t3), asObservable(t4), asObservable(t5), asObservable(t6), asObservable(t7), asObservable(t8)); } /** @@ -486,7 +486,7 @@ public final static Observable concat(Single t1, SingleReactiveX operators documentation: Concat */ public final static Observable concat(Single t1, Single t2, Single t3, Single t4, Single t5, Single t6, Single t7, Single t8, Single t9) { - return Observable.concat(toObservable(t1), toObservable(t2), toObservable(t3), toObservable(t4), toObservable(t5), toObservable(t6), toObservable(t7), toObservable(t8), toObservable(t9)); + return Observable.concat(asObservable(t1), asObservable(t2), asObservable(t3), asObservable(t4), asObservable(t5), asObservable(t6), asObservable(t7), asObservable(t8), asObservable(t9)); } /** @@ -694,7 +694,7 @@ public void onError(Throwable error) { * @see ReactiveX operators documentation: Merge */ public final static Observable merge(Single t1, Single t2) { - return Observable.merge(toObservable(t1), toObservable(t2)); + return Observable.merge(asObservable(t1), asObservable(t2)); } /** @@ -719,7 +719,7 @@ public final static Observable merge(Single t1, SingleReactiveX operators documentation: Merge */ public final static Observable merge(Single t1, Single t2, Single t3) { - return Observable.merge(toObservable(t1), toObservable(t2), toObservable(t3)); + return Observable.merge(asObservable(t1), asObservable(t2), asObservable(t3)); } /** @@ -746,7 +746,7 @@ public final static Observable merge(Single t1, SingleReactiveX operators documentation: Merge */ public final static Observable merge(Single t1, Single t2, Single t3, Single t4) { - return Observable.merge(toObservable(t1), toObservable(t2), toObservable(t3), toObservable(t4)); + return Observable.merge(asObservable(t1), asObservable(t2), asObservable(t3), asObservable(t4)); } /** @@ -775,7 +775,7 @@ public final static Observable merge(Single t1, SingleReactiveX operators documentation: Merge */ public final static Observable merge(Single t1, Single t2, Single t3, Single t4, Single t5) { - return Observable.merge(toObservable(t1), toObservable(t2), toObservable(t3), toObservable(t4), toObservable(t5)); + return Observable.merge(asObservable(t1), asObservable(t2), asObservable(t3), asObservable(t4), asObservable(t5)); } /** @@ -806,7 +806,7 @@ public final static Observable merge(Single t1, SingleReactiveX operators documentation: Merge */ public final static Observable merge(Single t1, Single t2, Single t3, Single t4, Single t5, Single t6) { - return Observable.merge(toObservable(t1), toObservable(t2), toObservable(t3), toObservable(t4), toObservable(t5), toObservable(t6)); + return Observable.merge(asObservable(t1), asObservable(t2), asObservable(t3), asObservable(t4), asObservable(t5), asObservable(t6)); } /** @@ -839,7 +839,7 @@ public final static Observable merge(Single t1, SingleReactiveX operators documentation: Merge */ public final static Observable merge(Single t1, Single t2, Single t3, Single t4, Single t5, Single t6, Single t7) { - return Observable.merge(toObservable(t1), toObservable(t2), toObservable(t3), toObservable(t4), toObservable(t5), toObservable(t6), toObservable(t7)); + return Observable.merge(asObservable(t1), asObservable(t2), asObservable(t3), asObservable(t4), asObservable(t5), asObservable(t6), asObservable(t7)); } /** @@ -874,7 +874,7 @@ public final static Observable merge(Single t1, SingleReactiveX operators documentation: Merge */ public final static Observable merge(Single t1, Single t2, Single t3, Single t4, Single t5, Single t6, Single t7, Single t8) { - return Observable.merge(toObservable(t1), toObservable(t2), toObservable(t3), toObservable(t4), toObservable(t5), toObservable(t6), toObservable(t7), toObservable(t8)); + return Observable.merge(asObservable(t1), asObservable(t2), asObservable(t3), asObservable(t4), asObservable(t5), asObservable(t6), asObservable(t7), asObservable(t8)); } /** @@ -911,7 +911,7 @@ public final static Observable merge(Single t1, SingleReactiveX operators documentation: Merge */ public final static Observable merge(Single t1, Single t2, Single t3, Single t4, Single t5, Single t6, Single t7, Single t8, Single t9) { - return Observable.merge(toObservable(t1), toObservable(t2), toObservable(t3), toObservable(t4), toObservable(t5), toObservable(t6), toObservable(t7), toObservable(t8), toObservable(t9)); + return Observable.merge(asObservable(t1), asObservable(t2), asObservable(t3), asObservable(t4), asObservable(t5), asObservable(t6), asObservable(t7), asObservable(t8), asObservable(t9)); } /** @@ -935,7 +935,7 @@ public final static Observable merge(Single t1, SingleReactiveX operators documentation: Zip */ public final static Single zip(Single o1, Single o2, final Func2 zipFunction) { - return just(new Observable[] { toObservable(o1), toObservable(o2) }).lift(new OperatorZip(zipFunction)); + return just(new Observable[] { asObservable(o1), asObservable(o2) }).lift(new OperatorZip(zipFunction)); } /** @@ -961,7 +961,7 @@ public final static Single zip(Single o1, SingleReactiveX operators documentation: Zip */ public final static Single zip(Single o1, Single o2, Single o3, Func3 zipFunction) { - return just(new Observable[] { toObservable(o1), toObservable(o2), toObservable(o3) }).lift(new OperatorZip(zipFunction)); + return just(new Observable[] { asObservable(o1), asObservable(o2), asObservable(o3) }).lift(new OperatorZip(zipFunction)); } /** @@ -989,7 +989,7 @@ public final static Single zip(Single o1, Singl * @see ReactiveX operators documentation: Zip */ public final static Single zip(Single o1, Single o2, Single o3, Single o4, Func4 zipFunction) { - return just(new Observable[] { toObservable(o1), toObservable(o2), toObservable(o3), toObservable(o4) }).lift(new OperatorZip(zipFunction)); + return just(new Observable[] { asObservable(o1), asObservable(o2), asObservable(o3), asObservable(o4) }).lift(new OperatorZip(zipFunction)); } /** @@ -1019,7 +1019,7 @@ public final static Single zip(Single o1, S * @see ReactiveX operators documentation: Zip */ public final static Single zip(Single o1, Single o2, Single o3, Single o4, Single o5, Func5 zipFunction) { - return just(new Observable[] { toObservable(o1), toObservable(o2), toObservable(o3), toObservable(o4), toObservable(o5) }).lift(new OperatorZip(zipFunction)); + return just(new Observable[] { asObservable(o1), asObservable(o2), asObservable(o3), asObservable(o4), asObservable(o5) }).lift(new OperatorZip(zipFunction)); } /** @@ -1052,7 +1052,7 @@ public final static Single zip(Single o */ public final static Single zip(Single o1, Single o2, Single o3, Single o4, Single o5, Single o6, Func6 zipFunction) { - return just(new Observable[] { toObservable(o1), toObservable(o2), toObservable(o3), toObservable(o4), toObservable(o5), toObservable(o6) }).lift(new OperatorZip(zipFunction)); + return just(new Observable[] { asObservable(o1), asObservable(o2), asObservable(o3), asObservable(o4), asObservable(o5), asObservable(o6) }).lift(new OperatorZip(zipFunction)); } /** @@ -1087,7 +1087,7 @@ public final static Single zip(Single Single zip(Single o1, Single o2, Single o3, Single o4, Single o5, Single o6, Single o7, Func7 zipFunction) { - return just(new Observable[] { toObservable(o1), toObservable(o2), toObservable(o3), toObservable(o4), toObservable(o5), toObservable(o6), toObservable(o7) }).lift(new OperatorZip(zipFunction)); + return just(new Observable[] { asObservable(o1), asObservable(o2), asObservable(o3), asObservable(o4), asObservable(o5), asObservable(o6), asObservable(o7) }).lift(new OperatorZip(zipFunction)); } /** @@ -1124,7 +1124,7 @@ public final static Single zip(Single Single zip(Single o1, Single o2, Single o3, Single o4, Single o5, Single o6, Single o7, Single o8, Func8 zipFunction) { - return just(new Observable[] { toObservable(o1), toObservable(o2), toObservable(o3), toObservable(o4), toObservable(o5), toObservable(o6), toObservable(o7), toObservable(o8) }).lift(new OperatorZip(zipFunction)); + return just(new Observable[] { asObservable(o1), asObservable(o2), asObservable(o3), asObservable(o4), asObservable(o5), asObservable(o6), asObservable(o7), asObservable(o8) }).lift(new OperatorZip(zipFunction)); } /** @@ -1163,7 +1163,7 @@ public final static Single zip(Single Single zip(Single o1, Single o2, Single o3, Single o4, Single o5, Single o6, Single o7, Single o8, Single o9, Func9 zipFunction) { - return just(new Observable[] { toObservable(o1), toObservable(o2), toObservable(o3), toObservable(o4), toObservable(o5), toObservable(o6), toObservable(o7), toObservable(o8), toObservable(o9) }).lift(new OperatorZip(zipFunction)); + return just(new Observable[] { asObservable(o1), asObservable(o2), asObservable(o3), asObservable(o4), asObservable(o5), asObservable(o6), asObservable(o7), asObservable(o8), asObservable(o9) }).lift(new OperatorZip(zipFunction)); } /** @@ -1222,7 +1222,7 @@ public final Single flatMap(final Func1ReactiveX operators documentation: FlatMap */ public final Observable flatMapObservable(Func1> func) { - return Observable.merge(toObservable(map(func))); + return Observable.merge(asObservable(map(func))); } /** @@ -1649,6 +1649,17 @@ public void onNext(T t) { public final Single subscribeOn(Scheduler scheduler) { return nest().lift(new OperatorSubscribeOn(scheduler)); } + + /** + * Converts this Single into an {@link Observable}. + *

+ * + * + * @return an {@link Observable} that emits a single item T. + */ + public final Observable toObservable() { + return asObservable(this); + } /** * Returns a Single that mirrors the source Single but applies a timeout policy for its emitted item. If it @@ -1748,7 +1759,7 @@ public final Single timeout(long timeout, TimeUnit timeUnit, Single error(new TimeoutException()); } - return lift(new OperatorTimeout(timeout, timeUnit, toObservable(other), scheduler)); + return lift(new OperatorTimeout(timeout, timeUnit, asObservable(other), scheduler)); } /** diff --git a/src/test/java/rx/SingleTest.java b/src/test/java/rx/SingleTest.java index 778feffb3c..1efd1ae5a7 100644 --- a/src/test/java/rx/SingleTest.java +++ b/src/test/java/rx/SingleTest.java @@ -452,4 +452,13 @@ public void onStart() { ts.assertValue("hello"); } + + @Test + public void testToObservable() { + Observable a = Single.just("a").toObservable(); + TestSubscriber ts = TestSubscriber.create(); + a.subscribe(ts); + ts.assertValue("a"); + ts.assertCompleted(); + } }