70 lines
1.8 KiB
Java
70 lines
1.8 KiB
Java
package co.jp.app.common;
|
|
|
|
|
|
public class ApiResponse<T> {
|
|
private boolean success;
|
|
private int code;
|
|
private String message;
|
|
private T data;
|
|
|
|
//空构造函数
|
|
private ApiResponse() {
|
|
}
|
|
|
|
private ApiResponse(ResultCode resultCode, T data) {
|
|
this.code = resultCode.getCode();
|
|
this.message = resultCode.getMessage();
|
|
this.success = (resultCode.getCode() == ResultCode.SUCCESS.getCode());
|
|
this.data = data;
|
|
}
|
|
|
|
public static <T> ApiResponse<T> success(T data) {
|
|
return new ApiResponse<>(ResultCode.SUCCESS, data);
|
|
}
|
|
|
|
public static <T> ApiResponse<T> success() {
|
|
return success(null);
|
|
}
|
|
|
|
public static <T> ApiResponse<T> fail(ResultCode resultCode) {
|
|
if (resultCode == ResultCode.SUCCESS) {
|
|
|
|
throw new IllegalArgumentException("Cannot use SUCCESS ResultCode for fail method. Use a specific error code.");
|
|
}
|
|
return new ApiResponse<>(resultCode, null);
|
|
}
|
|
|
|
public static <T> ApiResponse<T> fail(ResultCode resultCode, T data) {
|
|
if (resultCode == ResultCode.SUCCESS) {
|
|
throw new IllegalArgumentException("Cannot use SUCCESS ResultCode for fail method. Use a specific error code.");
|
|
}
|
|
return new ApiResponse<>(resultCode, data);
|
|
}
|
|
|
|
public boolean isSuccess() {
|
|
return success;
|
|
}
|
|
|
|
public int getCode() {
|
|
return code;
|
|
}
|
|
|
|
public String getMessage() {
|
|
return message;
|
|
}
|
|
|
|
public T getData() {
|
|
return data;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "ApiResponse{" +
|
|
"success=" + success +
|
|
", code=" + code +
|
|
", message='" + message + '\'' +
|
|
", data=" + data +
|
|
'}';
|
|
}
|
|
}
|