All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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