// 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-rx-api/src/main/java/easymvp/usecase/ObservableUseCase.java
// public abstract class ObservableUseCase<R, Q> extends UseCase<Observable, Q> {
// 
//     private final Observable.Transformer<? super R, ? extends R> schedulersTransformer;
// 
//     public ObservableUseCase(final UseCaseExecutor useCaseExecutor,
//                              final PostExecutionThread postExecutionThread) {
//         super(useCaseExecutor, postExecutionThread);
//         schedulersTransformer = new Observable.Transformer<R, R>() {
//             @Override
//             public Observable<R> call(Observable<R> rObservable) {
//                 return rObservable.subscribeOn(useCaseExecutor.getScheduler())
//                         .observeOn(postExecutionThread.getScheduler());
//             }
//         };
//     }
// 
//     @Override
//     public Observable<R> execute(@Nullable Q param) {
//         return interact(param).compose(getSchedulersTransformer());
//     }
// 
//     @Override
//     protected abstract Observable<R> interact(@Nullable Q param);
// 
//     private Observable.Transformer<? super R, ? extends R> getSchedulersTransformer() {
//         return schedulersTransformer;
//     }
// }


import easymvp.executer.PostExecutionThread;
import easymvp.executer.UseCaseExecutor;
import easymvp.usecase.ObservableUseCase;
import rx.Observable;
import rx.functions.Func0;
package com.sixthsolution.easymvp.test.usecase;



/**
 * @author Saeed Masoumi (saeed@6thsolution.com)
 */

public class IsNumberOdd extends ObservableUseCase<Boolean, Integer> {

    public IsNumberOdd(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-rx-api/src/main/java/easymvp/usecase/ObservableUseCase.java
// public abstract class ObservableUseCase<R, Q> extends UseCase<Observable, Q> {
// 
//     private final Observable.Transformer<? super R, ? extends R> schedulersTransformer;
// 
//     public ObservableUseCase(final UseCaseExecutor useCaseExecutor,
//                              final PostExecutionThread postExecutionThread) {
//         super(useCaseExecutor, postExecutionThread);
//         schedulersTransformer = new Observable.Transformer<R, R>() {
//             @Override
//             public Observable<R> call(Observable<R> rObservable) {
//                 return rObservable.subscribeOn(useCaseExecutor.getScheduler())
//                         .observeOn(postExecutionThread.getScheduler());
//             }
//         };
//     }
// 
//     @Override
//     public Observable<R> execute(@Nullable Q param) {
//         return interact(param).compose(getSchedulersTransformer());
//     }
// 
//     @Override
//     protected abstract Observable<R> interact(@Nullable Q param);
// 
//     private Observable.Transformer<? super R, ? extends R> getSchedulersTransformer() {
//         return schedulersTransformer;
//     }
// }


// Path: easymvp-test/src/test/java/com/sixthsolution/easymvp/test/usecase/IsNumberOdd.java
import easymvp.executer.PostExecutionThread;
import easymvp.executer.UseCaseExecutor;
import easymvp.usecase.ObservableUseCase;
import rx.Observable;
import rx.functions.Func0;

package com.sixthsolution.easymvp.test.usecase;



/**
 * @author Saeed Masoumi (saeed@6thsolution.com)
 */

public class IsNumberOdd extends ObservableUseCase<Boolean, Integer> {

    public IsNumberOdd(UseCaseExecutor useCaseExecutor,
                       PostExecutionThread postExecutionThread) {