mutiny.zero.internal.IterablePublisher Maven / Gradle / Ivy
package mutiny.zero.internal;
import static java.util.Objects.requireNonNull;
import org.reactivestreams.Publisher;
import org.reactivestreams.Subscriber;
public class IterablePublisher implements Publisher {
private final Iterable iterable;
public IterablePublisher(Iterable iterable) {
this.iterable = iterable;
}
@Override
public void subscribe(Subscriber super T> subscriber) {
requireNonNull(subscriber, "The subscriber cannot be null");
if (!iterable.iterator().hasNext()) {
subscriber.onSubscribe(new AlreadyCompletedSubscription());
subscriber.onComplete();
} else {
subscriber.onSubscribe(new IteratorSubscription<>(iterable.iterator(), subscriber));
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy