Skip to content

Commit 50b04ec

Browse files
committed
Removed the 'vararg' overload and added 2-9 args overloads
1 parent 24619f0 commit 50b04ec

File tree

2 files changed

+250
-10
lines changed

2 files changed

+250
-10
lines changed

rxjava-core/src/main/java/rx/Observable.java

Lines changed: 166 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4580,15 +4580,177 @@ public Observable<TimeInterval<T>> timeInterval(Scheduler scheduler) {
45804580
/**
45814581
* Propagates the observable sequence that reacts first.
45824582
*
4583-
* @param sources
4584-
* observable sources competing to react first.
4583+
* @param o1
4584+
* an observable competing to react first.
4585+
* @param o2
4586+
* an observable competing to react first.
4587+
* @return
4588+
* an observable sequence that surfaces any of the given sequences, whichever reacted first.
4589+
* @see <a href="http://msdn.microsoft.com/en-us/library/hh229733(v=vs.103).aspx">MSDN: Observable.Amb</a>
4590+
*/
4591+
public static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2) {
4592+
return create(OperationAmb.amb(o1, o2));
4593+
}
4594+
4595+
/**
4596+
* Propagates the observable sequence that reacts first.
45854597
*
4598+
* @param o1
4599+
* an observable competing to react first.
4600+
* @param o2
4601+
* an observable competing to react first.
4602+
* @param o3
4603+
* an observable competing to react first.
45864604
* @return
45874605
* an observable sequence that surfaces any of the given sequences, whichever reacted first.
45884606
* @see <a href="http://msdn.microsoft.com/en-us/library/hh229733(v=vs.103).aspx">MSDN: Observable.Amb</a>
45894607
*/
4590-
public static <T> Observable<T> amb(Observable<? extends T>... sources) {
4591-
return create(OperationAmb.amb(sources));
4608+
public static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3) {
4609+
return create(OperationAmb.amb(o1, o2, o3));
4610+
}
4611+
4612+
/**
4613+
* Propagates the observable sequence that reacts first.
4614+
*
4615+
* @param o1
4616+
* an observable competing to react first.
4617+
* @param o2
4618+
* an observable competing to react first.
4619+
* @param o3
4620+
* an observable competing to react first.
4621+
* @param o4
4622+
* an observable competing to react first.
4623+
* @return
4624+
* an observable sequence that surfaces any of the given sequences, whichever reacted first.
4625+
* @see <a href="http://msdn.microsoft.com/en-us/library/hh229733(v=vs.103).aspx">MSDN: Observable.Amb</a>
4626+
*/
4627+
public static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4) {
4628+
return create(OperationAmb.amb(o1, o2, o3, o4));
4629+
}
4630+
4631+
/**
4632+
* Propagates the observable sequence that reacts first.
4633+
*
4634+
* @param o1
4635+
* an observable competing to react first.
4636+
* @param o2
4637+
* an observable competing to react first.
4638+
* @param o3
4639+
* an observable competing to react first.
4640+
* @param o4
4641+
* an observable competing to react first.
4642+
* @param o5
4643+
* an observable competing to react first.
4644+
* @return
4645+
* an observable sequence that surfaces any of the given sequences, whichever reacted first.
4646+
* @see <a href="http://msdn.microsoft.com/en-us/library/hh229733(v=vs.103).aspx">MSDN: Observable.Amb</a>
4647+
*/
4648+
public static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4, Observable<? extends T> o5) {
4649+
return create(OperationAmb.amb(o1, o2, o3, o4, o5));
4650+
}
4651+
4652+
/**
4653+
* Propagates the observable sequence that reacts first.
4654+
*
4655+
* @param o1
4656+
* an observable competing to react first.
4657+
* @param o2
4658+
* an observable competing to react first.
4659+
* @param o3
4660+
* an observable competing to react first.
4661+
* @param o4
4662+
* an observable competing to react first.
4663+
* @param o5
4664+
* an observable competing to react first.
4665+
* @param o6
4666+
* an observable competing to react first.
4667+
* @return
4668+
* an observable sequence that surfaces any of the given sequences, whichever reacted first.
4669+
* @see <a href="http://msdn.microsoft.com/en-us/library/hh229733(v=vs.103).aspx">MSDN: Observable.Amb</a>
4670+
*/
4671+
public static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4, Observable<? extends T> o5, Observable<? extends T> o6) {
4672+
return create(OperationAmb.amb(o1, o2, o3, o4, o5, o6));
4673+
}
4674+
4675+
/**
4676+
* Propagates the observable sequence that reacts first.
4677+
*
4678+
* @param o1
4679+
* an observable competing to react first.
4680+
* @param o2
4681+
* an observable competing to react first.
4682+
* @param o3
4683+
* an observable competing to react first.
4684+
* @param o4
4685+
* an observable competing to react first.
4686+
* @param o5
4687+
* an observable competing to react first.
4688+
* @param o6
4689+
* an observable competing to react first.
4690+
* @param o7
4691+
* an observable competing to react first.
4692+
* @return
4693+
* an observable sequence that surfaces any of the given sequences, whichever reacted first.
4694+
* @see <a href="http://msdn.microsoft.com/en-us/library/hh229733(v=vs.103).aspx">MSDN: Observable.Amb</a>
4695+
*/
4696+
public static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4, Observable<? extends T> o5, Observable<? extends T> o6, Observable<? extends T> o7) {
4697+
return create(OperationAmb.amb(o1, o2, o3, o4, o5, o6, o7));
4698+
}
4699+
4700+
/**
4701+
* Propagates the observable sequence that reacts first.
4702+
*
4703+
* @param o1
4704+
* an observable competing to react first.
4705+
* @param o2
4706+
* an observable competing to react first.
4707+
* @param o3
4708+
* an observable competing to react first.
4709+
* @param o4
4710+
* an observable competing to react first.
4711+
* @param o5
4712+
* an observable competing to react first.
4713+
* @param o6
4714+
* an observable competing to react first.
4715+
* @param o7
4716+
* an observable competing to react first.
4717+
* @param o8
4718+
* an observable competing to react first.
4719+
* @return
4720+
* an observable sequence that surfaces any of the given sequences, whichever reacted first.
4721+
* @see <a href="http://msdn.microsoft.com/en-us/library/hh229733(v=vs.103).aspx">MSDN: Observable.Amb</a>
4722+
*/
4723+
public static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4, Observable<? extends T> o5, Observable<? extends T> o6, Observable<? extends T> o7, Observable<? extends T> o8) {
4724+
return create(OperationAmb.amb(o1, o2, o3, o4, o5, o6, o7, o8));
4725+
}
4726+
4727+
/**
4728+
* Propagates the observable sequence that reacts first.
4729+
*
4730+
* @param o1
4731+
* an observable competing to react first.
4732+
* @param o2
4733+
* an observable competing to react first.
4734+
* @param o3
4735+
* an observable competing to react first.
4736+
* @param o4
4737+
* an observable competing to react first.
4738+
* @param o5
4739+
* an observable competing to react first.
4740+
* @param o6
4741+
* an observable competing to react first.
4742+
* @param o7
4743+
* an observable competing to react first.
4744+
* @param o8
4745+
* an observable competing to react first.
4746+
* @param o9
4747+
* an observable competing to react first.
4748+
* @return
4749+
* an observable sequence that surfaces any of the given sequences, whichever reacted first.
4750+
* @see <a href="http://msdn.microsoft.com/en-us/library/hh229733(v=vs.103).aspx">MSDN: Observable.Amb</a>
4751+
*/
4752+
public static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4, Observable<? extends T> o5, Observable<? extends T> o6, Observable<? extends T> o7, Observable<? extends T> o8, Observable<? extends T> o9) {
4753+
return create(OperationAmb.amb(o1, o2, o3, o4, o5, o6, o7, o8, o9));
45924754
}
45934755

45944756
/**

rxjava-core/src/main/java/rx/operators/OperationAmb.java

Lines changed: 84 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
import static org.mockito.Mockito.times;
2121

2222
import java.io.IOException;
23-
import java.util.Arrays;
23+
import java.util.ArrayList;
24+
import java.util.List;
2425
import java.util.concurrent.TimeUnit;
2526
import java.util.concurrent.atomic.AtomicInteger;
2627

@@ -41,8 +42,88 @@
4142
*/
4243
public class OperationAmb {
4344

44-
public static <T> OnSubscribeFunc<T> amb(Observable<? extends T>... sources) {
45-
return amb(Arrays.asList(sources));
45+
public static <T> OnSubscribeFunc<T> amb(Observable<? extends T> o1, Observable<? extends T> o2) {
46+
List<Observable<? extends T>> sources = new ArrayList<Observable<? extends T>>();
47+
sources.add(o1);
48+
sources.add(o2);
49+
return amb(sources);
50+
}
51+
52+
public static <T> OnSubscribeFunc<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3) {
53+
List<Observable<? extends T>> sources = new ArrayList<Observable<? extends T>>();
54+
sources.add(o1);
55+
sources.add(o2);
56+
sources.add(o3);
57+
return amb(sources);
58+
}
59+
60+
public static <T> OnSubscribeFunc<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4) {
61+
List<Observable<? extends T>> sources = new ArrayList<Observable<? extends T>>();
62+
sources.add(o1);
63+
sources.add(o2);
64+
sources.add(o3);
65+
sources.add(o4);
66+
return amb(sources);
67+
}
68+
69+
public static <T> OnSubscribeFunc<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4, Observable<? extends T> o5) {
70+
List<Observable<? extends T>> sources = new ArrayList<Observable<? extends T>>();
71+
sources.add(o1);
72+
sources.add(o2);
73+
sources.add(o3);
74+
sources.add(o4);
75+
sources.add(o5);
76+
return amb(sources);
77+
}
78+
79+
public static <T> OnSubscribeFunc<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4, Observable<? extends T> o5, Observable<? extends T> o6) {
80+
List<Observable<? extends T>> sources = new ArrayList<Observable<? extends T>>();
81+
sources.add(o1);
82+
sources.add(o2);
83+
sources.add(o3);
84+
sources.add(o4);
85+
sources.add(o5);
86+
sources.add(o6);
87+
return amb(sources);
88+
}
89+
90+
public static <T> OnSubscribeFunc<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4, Observable<? extends T> o5, Observable<? extends T> o6, Observable<? extends T> o7) {
91+
List<Observable<? extends T>> sources = new ArrayList<Observable<? extends T>>();
92+
sources.add(o1);
93+
sources.add(o2);
94+
sources.add(o3);
95+
sources.add(o4);
96+
sources.add(o5);
97+
sources.add(o6);
98+
sources.add(o7);
99+
return amb(sources);
100+
}
101+
102+
public static <T> OnSubscribeFunc<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4, Observable<? extends T> o5, Observable<? extends T> o6, Observable<? extends T> o7, Observable<? extends T> o8) {
103+
List<Observable<? extends T>> sources = new ArrayList<Observable<? extends T>>();
104+
sources.add(o1);
105+
sources.add(o2);
106+
sources.add(o3);
107+
sources.add(o4);
108+
sources.add(o5);
109+
sources.add(o6);
110+
sources.add(o7);
111+
sources.add(o8);
112+
return amb(sources);
113+
}
114+
115+
public static <T> OnSubscribeFunc<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4, Observable<? extends T> o5, Observable<? extends T> o6, Observable<? extends T> o7, Observable<? extends T> o8, Observable<? extends T> o9) {
116+
List<Observable<? extends T>> sources = new ArrayList<Observable<? extends T>>();
117+
sources.add(o1);
118+
sources.add(o2);
119+
sources.add(o3);
120+
sources.add(o4);
121+
sources.add(o5);
122+
sources.add(o6);
123+
sources.add(o7);
124+
sources.add(o8);
125+
sources.add(o9);
126+
return amb(sources);
46127
}
47128

48129
public static <T> OnSubscribeFunc<T> amb(
@@ -170,7 +251,6 @@ public void testAmb() {
170251
Observable<String> observable3 = createObservable(new String[] {
171252
"3", "33", "333", "3333" }, 3000, null);
172253

173-
@SuppressWarnings("unchecked")
174254
Observable<String> o = Observable.create(amb(observable1,
175255
observable2, observable3));
176256

@@ -200,7 +280,6 @@ public void testAmb2() {
200280
Observable<String> observable3 = createObservable(new String[] {},
201281
3000, new IOException("fake exception"));
202282

203-
@SuppressWarnings("unchecked")
204283
Observable<String> o = Observable.create(amb(observable1,
205284
observable2, observable3));
206285

@@ -228,7 +307,6 @@ public void testAmb3() {
228307
Observable<String> observable3 = createObservable(new String[] {
229308
"3" }, 3000, null);
230309

231-
@SuppressWarnings("unchecked")
232310
Observable<String> o = Observable.create(amb(observable1,
233311
observable2, observable3));
234312

0 commit comments

Comments
 (0)