package io.ripc.test;
import io.ripc.test.internal.PublisherFactory;
import org.reactivestreams.Publisher;
import org.reactivestreams.Subscriber;
import org.reactivestreams.Subscription;
import java.util.Arrays;
import java.util.List;
/**
* Temporary utility class for creating and transforming {@link Publisher}s.
*/
public class Publishers {
public static <T> Publisher<T> just(final T... values) {
final List<T> list = Arrays.asList(values);
return PublisherFactory.forEach(
sub -> {
if (sub.context().hasNext()) {
sub.onNext(sub.context().next());
} else {
sub.onComplete();
}
},
sub -> list.iterator()
);
}
public static <T> Publisher<T> error(final Throwable t) {
return new Publisher<T>() {
@Override
public void subscribe(final Subscriber<? super T> s) {
s.onSubscribe(new Subscription() {
@Override
public void request(long n) {
s.onError(t);
}
@Override
public void cancel() {
}
});
}
};
}
}