package it.cavallium.warppi.flow; public abstract class Subject extends Observable implements Observer { abstract Throwable getThrowable(); abstract boolean hasComplete(); abstract boolean hasObservers(); abstract boolean hasThrowable(); abstract Subject toSerialized(); @Override public Disposable subscribe(Action1 onNext) { return subscribe(createSubscriber(onNext)); } @Override public Disposable subscribe(Action1 onNext, Action1 onError) { return subscribe(createSubscriber(onNext, onError)); } @Override public Disposable subscribe(Action1 onNext, Action1 onError, Action0 onCompl) { return subscribe(createSubscriber(onNext, onError, onCompl)); } @Override public void subscribe(Observer obs) { subscribe(createSubscriber(obs)); } @Override public Disposable subscribe(Subscriber sub) { Disposable disp = super.subscribe(sub); this.onSubscribe(disp); return disp; } }