下面列出了怎么用io.reactivex.internal.fuseable.ConditionalSubscriber的API类实例代码及写法,或者点击链接到github查看源代码。
@SuppressWarnings("unchecked")
public void subscribe(@NonNull Subscriber<? super T>[] subscribers) {
if (!validate(subscribers)) {
return;
}
int n = subscribers.length;
Subscriber<? super T>[] parents = new Subscriber[n];
for (int i = 0; i < n; i++) {
Subscriber<? super T> a = subscribers[i];
if (a instanceof ConditionalSubscriber) {
parents[i] = new LifeConditionalSubscriber<>((ConditionalSubscriber<? super T>) a, scope);
} else {
parents[i] = new LifeSubscriber<>(a, scope);
}
}
ParallelFlowable<T> upStream = this.upStream;
if (onMain) upStream = upStream.runOn(AndroidSchedulers.mainThread());
upStream.subscribe(parents);
}
@Override
public void subscribe(Subscriber<? super T>[] s) {
if (validate(s)) {
int n = s.length;
@SuppressWarnings("unchecked")
Subscriber<? super T>[] parents = new Subscriber[n];
for (int i = 0; i < n; i++) {
Subscriber<? super T> z = s[i];
if (z instanceof ConditionalSubscriber) {
parents[i] = new OnAssemblyConditionalSubscriber<T>((ConditionalSubscriber<? super T>)z, assembled);
} else {
parents[i] = new OnAssemblySubscriber<T>(z, assembled);
}
}
source.subscribe(parents);
}
}
@Override
public void subscribe(Subscriber<? super T>[] s) {
if (!validate(s)) {
return;
}
final int n = s.length;
@SuppressWarnings("unchecked")
final Subscriber<? super T>[] parents = new Subscriber[n];
for (int i = 0; i < n; i++) {
final Subscriber<? super T> z = s[i];
if (z instanceof ConditionalSubscriber) {
parents[i] = new RequestContextConditionalSubscriber<>(
(ConditionalSubscriber<? super T>) z, assemblyContext
);
} else {
parents[i] = new RequestContextSubscriber<>(z, assemblyContext);
}
}
try (SafeCloseable ignored = assemblyContext.push()) {
source.subscribe(parents);
}
}
@Override
protected void subscribeActual(Subscriber<? super T> s) {
if (s instanceof ConditionalSubscriber) {
source.subscribe(new OnAssemblyConditionalSubscriber<T>((ConditionalSubscriber<? super T>)s, assembled));
} else {
source.subscribe(new OnAssemblySubscriber<T>(s, assembled));
}
}
@Override
protected void subscribeActual(Subscriber<? super T> s) {
if (s instanceof ConditionalSubscriber) {
source.subscribe(new OnAssemblyConditionalSubscriber<T>((ConditionalSubscriber<? super T>)s, assembled));
} else {
source.subscribe(new OnAssemblySubscriber<T>(s, assembled));
}
}
@SuppressWarnings("unchecked")
@Override
protected void subscribeActual(Subscriber<? super T> s) {
try (SafeCloseable ignored = assemblyContext.push()) {
if (s instanceof ConditionalSubscriber) {
source.subscribe(new RequestContextConditionalSubscriber<>(
(ConditionalSubscriber<? super T>) s, assemblyContext
));
} else {
source.subscribe(new RequestContextSubscriber<>(s, assemblyContext));
}
}
}
@SuppressWarnings("unchecked")
@Override
protected void subscribeActual(Subscriber<? super T> s) {
try (SafeCloseable ignored = assemblyContext.push()) {
if (s instanceof ConditionalSubscriber) {
source.subscribe(new RequestContextConditionalSubscriber<>(
(ConditionalSubscriber<? super T>) s, assemblyContext
));
} else {
source.subscribe(new RequestContextSubscriber<>(s, assemblyContext));
}
}
}
@Override
protected void subscribeActual(Subscriber<? super T> s) {
try (SafeCloseable ignored = assemblyContext.push()) {
if (s instanceof ConditionalSubscriber) {
source.subscribe(new RequestContextConditionalSubscriber<>(
(ConditionalSubscriber<? super T>) s, assemblyContext
));
} else {
source.subscribe(new RequestContextSubscriber<>(s, assemblyContext));
}
}
}
@SuppressWarnings("unchecked")
@Override
protected void subscribeActual(Subscriber<? super T> s) {
try (SafeCloseable ignored = assemblyContext.push()) {
if (s instanceof ConditionalSubscriber) {
source.subscribe(new RequestContextConditionalSubscriber<>(
(ConditionalSubscriber<? super T>) s, assemblyContext
));
} else {
source.subscribe(new RequestContextSubscriber<>(s, assemblyContext));
}
}
}
LifeConditionalSubscriber(ConditionalSubscriber<? super T> downstream, Scope scope) {
super(scope);
this.downstream = downstream;
}
RequestContextConditionalSubscriber(ConditionalSubscriber<? super T> downstream,
RequestContext assemblyContext) {
super(downstream);
this.assemblyContext = assemblyContext;
}