package com.shizhefei.task.datasource; import com.shizhefei.mvc.IAsyncDataSource; import com.shizhefei.mvc.IDataSource; import com.shizhefei.mvc.RequestHandle; import com.shizhefei.mvc.ResponseSender; import com.shizhefei.task.ResponseSenderCallback; import com.shizhefei.task.TaskHelper; /** * Created by luckyjayce on 2017/4/17. */ class AsyncDataSource<DATA> implements IAsyncDataSource<DATA> { private IDataSource<DATA> dataSource; public AsyncDataSource(IDataSource<DATA> dataSource) { this.dataSource = dataSource; } @Override public RequestHandle refresh(ResponseSender<DATA> sender) throws Exception { return TaskHelper.createExecutor(dataSource, true, new ResponseSenderCallback<>(sender)).execute(); } @Override public RequestHandle loadMore(ResponseSender<DATA> sender) throws Exception { return TaskHelper.createExecutor(dataSource, false, new ResponseSenderCallback<>(sender)).execute(); } @Override public boolean hasMore() { return dataSource.hasMore(); } }