ActivePlan4( JoinObserver1<T1> jo1, JoinObserver1<T2> jo2, JoinObserver1<T3> jo3, JoinObserver1<T4> jo4, Consumer4<T1, T2, T3, T4> onNext, Action onCompleted) { this.onNext = onNext; this.onCompleted = onCompleted; this.jo1 = jo1; this.jo2 = jo2; this.jo3 = jo3; this.jo4 = jo4; addJoinObserver(jo1); addJoinObserver(jo2); addJoinObserver(jo3); addJoinObserver(jo4); }
@Override protected void match() throws Exception { if (!jo1.queue().isEmpty() && !jo2.queue().isEmpty() && !jo3.queue().isEmpty() && !jo4.queue().isEmpty()) { Notification<T1> n1 = jo1.queue().peek(); Notification<T2> n2 = jo2.queue().peek(); Notification<T3> n3 = jo3.queue().peek(); Notification<T4> n4 = jo4.queue().peek(); if (n1.isOnComplete() || n2.isOnComplete() || n3.isOnComplete() || n4.isOnComplete()) { onCompleted.run(); } else { dequeue(); onNext.accept(n1.getValue(), n2.getValue(), n3.getValue(), n4.getValue()); } } }
ActivePlan0 activePlan = new ActivePlan4<T1, T2, T3, T4>( jo1, jo2, jo3, jo4, new Consumer4<T1, T2, T3, T4>() {
@Override protected void match() throws Exception { if (!jo1.queue().isEmpty() && !jo2.queue().isEmpty() && !jo3.queue().isEmpty() && !jo4.queue().isEmpty()) { Notification<T1> n1 = jo1.queue().peek(); Notification<T2> n2 = jo2.queue().peek(); Notification<T3> n3 = jo3.queue().peek(); Notification<T4> n4 = jo4.queue().peek(); if (n1.isOnComplete() || n2.isOnComplete() || n3.isOnComplete() || n4.isOnComplete()) { onCompleted.run(); } else { dequeue(); onNext.accept(n1.getValue(), n2.getValue(), n3.getValue(), n4.getValue()); } } }
ActivePlan0 activePlan = new ActivePlan4<T1, T2, T3, T4>( jo1, jo2, jo3, jo4, new Consumer4<T1, T2, T3, T4>() {
ActivePlan4( JoinObserver1<T1> jo1, JoinObserver1<T2> jo2, JoinObserver1<T3> jo3, JoinObserver1<T4> jo4, Consumer4<T1, T2, T3, T4> onNext, Action onCompleted) { this.onNext = onNext; this.onCompleted = onCompleted; this.jo1 = jo1; this.jo2 = jo2; this.jo3 = jo3; this.jo4 = jo4; addJoinObserver(jo1); addJoinObserver(jo2); addJoinObserver(jo3); addJoinObserver(jo4); }