package core.usecase; import core.datasource.SdkItem; import core.repository.GenericRepository; import rx.Observable; public class GenericUseCase<Request, Data> { GenericRepository<Request, Data> repository; public GenericUseCase(GenericRepository<Request, Data> repository) { if (repository == null) { throw new NullPointerException("Repository cannot be null"); } this.repository = repository; } public Observable<SdkItem<Data>> execute(SdkItem<Request> request) { return repository.execute(request); } }