package org.lntu.online.model.entity; import com.google.gson.annotations.SerializedName; import org.lntu.online.model.util.EntityUtils; import retrofit.RetrofitError; public class ErrorInfo { private int statusCode; @SerializedName("code") private ErrorCode errorCode; private String message; public static ErrorInfo build(RetrofitError error) { ErrorInfo result; try { result = (ErrorInfo) error.getBodyAs(ErrorInfo.class); if (result == null) { result = new ErrorInfo(); if (error.getResponse() == null) { result.statusCode = 0; result.errorCode = ErrorCode.CLIENT_ERROR; } else { result.statusCode = error.getResponse().getStatus(); result.errorCode = ErrorCode.HTTP_ERROR; } result.message = error.getLocalizedMessage(); } else { result.statusCode = error.getResponse().getStatus(); } } catch (Exception e) { result = new ErrorInfo(); result.statusCode = error.getResponse() == null ? 0 : error.getResponse().getStatus(); result.errorCode = ErrorCode.UNKNOWN_ERROR; result.message = error.getLocalizedMessage(); } return result; } public int getStatusCode() { return statusCode; } public ErrorCode getErrorCode() { return errorCode; } public String getMessage() { return message; } @Override public String toString() { return EntityUtils.gson.toJson(this); } }