package info.izumin.android.bletia.rx; import info.izumin.android.bletia.core.ResolveStrategy; import rx.Observable; import rx.subjects.PublishSubject; /** * Created by izumin on 11/15/15. */ public class RxObservableStrategy<T, E extends Throwable> implements ResolveStrategy<T, E, Observable<T>> { public static final String TAG = RxObservableStrategy.class.getSimpleName(); private final PublishSubject<T> mSubject; public RxObservableStrategy() { mSubject = PublishSubject.create(); } protected PublishSubject<T> getSubject() { return mSubject; } @Override public void resolve(T value) { mSubject.onNext(value); mSubject.onCompleted(); } @Override public void reject(E throwable) { mSubject.onError(throwable); } @Override public Observable<T> getResolver() { return mSubject; } }