// Path: easymvp-rx2-api/src/main/java/easymvp/executer/PostExecutionThread.java
// public interface PostExecutionThread {
//     Scheduler getScheduler();
// }
// 
// Path: easymvp-rx-api/src/main/java/easymvp/executer/UseCaseExecutor.java
// public interface UseCaseExecutor {
//     Scheduler getScheduler();
// }


import javax.annotation.Nullable;
import easymvp.executer.PostExecutionThread;
import easymvp.executer.UseCaseExecutor;
import io.reactivex.Maybe;
import io.reactivex.MaybeTransformer;
package easymvp.usecase;



/**
 * @author Saeed Masoumi (s-masoumi@live.com)
 */
public abstract class MaybeUseCase<R, Q> extends UseCase<Maybe, Q> {
    private final MaybeTransformer<? super R, ? extends R> schedulersTransformer;

    public MaybeUseCase(final UseCaseExecutor useCaseExecutor,
// Path: easymvp-rx2-api/src/main/java/easymvp/executer/PostExecutionThread.java
// public interface PostExecutionThread {
//     Scheduler getScheduler();
// }
// 
// Path: easymvp-rx-api/src/main/java/easymvp/executer/UseCaseExecutor.java
// public interface UseCaseExecutor {
//     Scheduler getScheduler();
// }


// Path: easymvp-rx2-api/src/main/java/easymvp/usecase/MaybeUseCase.java
import javax.annotation.Nullable;
import easymvp.executer.PostExecutionThread;
import easymvp.executer.UseCaseExecutor;
import io.reactivex.Maybe;
import io.reactivex.MaybeTransformer;

package easymvp.usecase;



/**
 * @author Saeed Masoumi (s-masoumi@live.com)
 */
public abstract class MaybeUseCase<R, Q> extends UseCase<Maybe, Q> {
    private final MaybeTransformer<? super R, ? extends R> schedulersTransformer;

    public MaybeUseCase(final UseCaseExecutor useCaseExecutor,
                        final PostExecutionThread postExecutionThread) {