package in.srain.cube.request; public class FailData { public static final int ERROR_UNKNOWN = 0; public static final int ERROR_INPUT = 1; public static final int ERROR_NETWORK = 2; public static final int ERROR_DATA_FORMAT = 3; public static final int ERROR_CUSTOMIZED = 100; public int mErrorType = ERROR_DATA_FORMAT; public int mCustomErrorType; public IRequest<?> mRequest; public Object mData; public static FailData unknown(IRequest<?> request) { return new FailData(request, ERROR_UNKNOWN, -1, null); } public static FailData inputError(IRequest<?> request) { return new FailData(request, ERROR_INPUT, -1, null); } public static FailData networkError(IRequest<?> request) { return new FailData(request, ERROR_NETWORK, -1, null); } public static FailData dataFormatError(IRequest<?> request, String content) { return new FailData(request, ERROR_DATA_FORMAT, -1, content); } public static FailData customizedError(IRequest<?> request, int error, Object data) { return new FailData(request, ERROR_CUSTOMIZED, error, data); } private FailData(IRequest<?> request, int errorType, int customErrorType, Object data) { mRequest = request; mErrorType = errorType; mCustomErrorType = customErrorType; mData = data; } public int getErrorType() { return mErrorType; } public int getCustomErrorType() { return mCustomErrorType; } public IRequest<?> getRequest() { return mRequest; } public <T> T getData(Class<T> cls) { if (mData == null || !cls.isInstance(mData)) { return null; } return (T) mData; } public Object getRawData() { return mData; } }