
com.aol.micro.server.javaslang.reactive.JavaslangSubscriber Maven / Gradle / Ivy
package com.aol.micro.server.javaslang.reactive;
import org.reactivestreams.Subscriber;
import org.reactivestreams.Subscription;
import com.aol.cyclops.types.stream.reactive.SeqSubscriber;
import javaslang.collection.Array;
import javaslang.collection.HashSet;
import javaslang.collection.List;
import javaslang.collection.Set;
import javaslang.collection.Stream;
public class JavaslangSubscriber implements Subscriber{
/**
* A reactive-streams subscriber than can generate Javaslang traversable types
*
* @return JavaslangSubscriber
*/
public static JavaslangSubscriber subscriber(){
return new JavaslangSubscriber();
}
SeqSubscriber sub = SeqSubscriber.subscriber();
public Stream stream(){
return Stream.ofAll(sub.stream());
}
public List list(){
return List.ofAll(sub.stream());
}
public Array array(){
return Array.ofAll(sub.stream());
}
public Set set(){
return HashSet.ofAll(sub.stream());
}
@Override
public void onSubscribe(Subscription s) {
sub.onSubscribe(s);
}
@Override
public void onNext(T t) {
sub.onNext(t);
}
@Override
public void onError(Throwable t) {
sub.onError(t);
}
@Override
public void onComplete() {
sub.onComplete();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy