package com.mcxtzhang.rxjava2demo.retrofit.base.removewrapper.bendan; import com.mcxtzhang.rxjava2demo.retrofit.base.wrapper.BaseBean; import com.mcxtzhang.rxjava2demo.retrofit.base.ResultException; import io.reactivex.functions.Function; import static com.mcxtzhang.rxjava2demo.retrofit.base.NetworkConfig.SUCCESS_FLAG; /** * Intro: 用来剥离外层固定包装的Function * Author: zhangxutong * E-mail: mcxtzhang@163.com * Home Page: http://blog.csdn.net/zxt0601 * Created: 2017/2/10. * History: */ public class RemoveWrapper<T> implements Function<BaseBean<T>, T> { private String mCstErrorCode; public RemoveWrapper() { } public RemoveWrapper(String cstErrorCode) { mCstErrorCode = cstErrorCode; } @Override public T apply(BaseBean<T> tBaseBean) throws Exception { if (tBaseBean == null) { throw new ResultException(mCstErrorCode, "服务器未知错误"); } else { if (!SUCCESS_FLAG.equals(tBaseBean.getFlag())) { throw new ResultException(tBaseBean.getFlag(), tBaseBean.getMessage()); } else { return tBaseBean.getData(); } } } }