com.github.andyshao.exception.Result Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of Gear Show documentation
Show all versions of Gear Show documentation
Enhance and formating the coding of JDK
The newest version!
package com.github.andyshao.exception;
import java.io.Serializable;
/**
*
* Title: Servlet Result Definition
* Descript:
* Copyright: Copryright(c) Sep 27, 2017
* Encoding:UNIX UTF-8
* @author andy.shao
* @param data type
*/
public interface Result extends Serializable{
/**
* get data
* @return data
*/
DATA getData();
/**
* set data
* @param data data
*/
void setData(DATA data);
/**
* get message
* @return message
*/
String getMessage();
/**
* set message
* @param message message
*/
void setMessage(String message);
/**
* is success
* @return if it is then true
*/
boolean isSuccess();
/**
* set success tage
* @param isSuccess success tage
*/
void isSuccess(boolean isSuccess);
/**
* get code
* @return code value
*/
String getCode();
/**
* set code
* @param code code value
*/
void setCode(String code);
/**
* the description of {@link Result}
* @return the description
*/
default String description() {
StringBuilder sb = new StringBuilder();
sb.append("isSuccess = ").append(this.isSuccess());
sb.append(", message = ").append(this.getMessage());
return sb.toString();
}
/**
* Get a success result
* @param resultCode response code and message
* @return a success result
* @param the type of the data
* @see ResultCode
*/
static Result success(ResultCode resultCode) {
return success(resultCode.getCode(), resultCode.getMessage());
}
/**
* Get a success result with response code and message
* @param resultCode response code
* @param message response message
* @return a success result
* @param the type of the data
* @see ResultCode
*/
static Result success(ResultCode resultCode, String message) {
return success(resultCode.getCode() , message);
}
/**
* Get a success result with response code and message
* @param code response code
* @param message response message
* @return a success result
* @param the type of the data
*/
static Result success(String code, String message) {
return Result.wrap(null, code, message, true);
}
/**
* Get a success result with data
* @param data the result data
* @return a success result
* @param the type of the data
*/
static Result successData(E data){
return successData(data, ResultCodeEnum.SUCCESS);
}
/**
* Get a success result with data, response code and message
* @param data the result data
* @param resultCode the response code and message
* @return a success result
* @param the type of the data
* @see ResultCode
*/
static Result successData(E data, ResultCode resultCode) {
return success(data, resultCode.getCode(), resultCode.getMessage());
}
/**
* Get a success result with data, response code and message
* @param data the result data
* @param resultCode the response code
* @param message the response message
* @return a success result
* @param the type of the data
* @see ResultCode
*/
static Result successData(E data, ResultCode resultCode, String message) {
return success(data , resultCode.getCode() , message);
}
/**
* Get a success result with data and response message
* @param data the result data
* @param message the response message
* @return a success result
* @param the type of the data
*/
static Result successData(E data, String message){
return success(data, ResultCodeEnum.SUCCESS.getCode(), message);
}
/**
* Get a success result with data, response code and message
* @param data the result data
* @param code the response code
* @param message the response message
* @return a success result
* @param the type of the data
*/
static Result success(E data, String code, String message) {
return Result.wrap(data, code, message, true);
}
/**
* Get a success result without data
* @return a success result
* @param the type of the data
*/
static Result success() {
return Result.success(ResultCodeEnum.SUCCESS);
}
/**
* Get a success result with response message
* @param message response message
* @return a success result
* @param the type of the data
*/
static Result successMsg(String message) {
return success(ResultCodeEnum.SUCCESS.getCode(), message);
}
/**
* Ge an error result with {@link ResultCode}
* @param resultCode the response code and message
* @return an error result
* @param the type of the data
* @see ResultCode
*/
static Result error(ResultCode resultCode) {
return Result.error(resultCode.getCode(), resultCode.getMessage());
}
/**
* Get an error result with response code and message
* @param resultCode the response code
* @param message the response message
* @return an error result
* @param the type of the data
* @see ResultCode
*/
static Result error(ResultCode resultCode, String message) {
return error(resultCode.getCode() , message);
}
/**
* Get an error result without data
* @return an error result
* @param the type of the data
*/
static Result error() {
return Result.error(ResultCodeEnum.ERROR);
}
/**
* Get an error result with response message
* @param message an error message
* @return an error result
* @param the type of the data
*/
static Result errorMsg(String message) {
return Result.error(ResultCodeEnum.ERROR.getCode(), message);
}
/**
* Get an error result with response code and message
* @param code the response code
* @param message the response message
* @return an error result
* @param the type of the data
*/
static Result error(String code, String message) {
return Result.error(null, code, message);
}
/**
* Get an error result with data
* @param data the result data
* @return an error result
* @param the type of the data
*/
static Result errorData(E data) {
return Result.errorData(data , ResultCodeEnum.ERROR.getMessage());
}
/**
* Get an error result with data and response message
* @param data the result data
* @param message the response message
* @return an error result
* @param the type of the data
*/
static Result errorData(E data, String message) {
return Result.error(data, ResultCodeEnum.ERROR.getCode(), message);
}
/**
* Get an error result with data, response code and message
* @param data the result data
* @param resultCode the response code and message
* @return an error result
* @param the type of the data
* @see ResultCode
*/
static Result errorData(E data, ResultCode resultCode) {
return error(data, resultCode.getCode(), resultCode.getMessage());
}
/**
* Get an error result with data, response code and message
* @param data the result data
* @param resultCode the response code
* @param message the response message
* @return an error result
* @param the type of the data
* @see ResultCode
*/
static Result errorData(E data, ResultCode resultCode, String message) {
return error(data, resultCode.getCode(), message);
}
/**
* Get an error result with data, response code and message
* @param data the result data
* @param code the response code
* @param message the response message
* @return an error result
* @param the type of the data
*/
static Result error(E data, String code, String message) {
return Result.wrap(data , code , message , false);
}
/**
* Get a {@link Result} with data, response code and message
* @param data the result data
* @param code the response code
* @param message the response message
* @param isSuccess if the response is success then setting true
* @return a {@link Result}
* @param the type of the data
*/
static Result wrap(E data, String code, String message, boolean isSuccess) {
Result result = new DefaultResult<>();
result.setData(data);
result.isSuccess(isSuccess);
result.setMessage(message);
result.setCode(code);
return result;
}
/**
* default result
* @param data type
*/
static class DefaultResult implements Result{
private static final long serialVersionUID = -8009738064238682676L;
/**data*/
private E data;
/**message*/
private String message;
/**success tag*/
private boolean isSuccess;
/**code*/
private String code;
@Override
public E getData() {
return this.data;
}
@Override
public void setData(E data) {
this.data = data;
}
@Override
public String getMessage() {
return this.message;
}
@Override
public void setMessage(String message) {
this.message = message;
}
@Override
public boolean isSuccess() {
return this.isSuccess;
}
@Override
public void isSuccess(boolean isSuccess) {
this.isSuccess = isSuccess;
}
@Override
public String getCode() {
return this.code;
}
@Override
public void setCode(String code) {
this.code = code;
}
/**
* builder
* @return {@link SelfBuilder}
* @param data type
*/
public static SelfBuilder builder() {
return new SelfBuilder();
}
/**
* self builder
* @param data type
*/
static class SelfBuilder {
private T data;
private String message;
private boolean isSuccess;
private String code;
/**
* set code
* @param code code
* @return {@link SelfBuilder}
*/
public SelfBuilder code(String code) {
this.code = code;
return this;
}
/**
* set success tage
* @param isSuccess success tage
* @return {@link SelfBuilder}
*/
public SelfBuilder isSuccess(boolean isSuccess) {
this.isSuccess = isSuccess;
return this;
}
/**
* set message
* @param message message
* @return {@link SelfBuilder}
*/
public SelfBuilder message(String message) {
this.message = message;
return this;
}
/**
* set data
* @param data data
* @return {@link SelfBuilder}
*/
public SelfBuilder data(T data) {
this.data = data;
return this;
}
/**
* build action
* @return {@link DefaultResult}
*/
public DefaultResult build() {
DefaultResult ret = new DefaultResult();
ret.data = this.data;
ret.message = this.message;
ret.isSuccess = this.isSuccess;
ret.code = this.code;
return ret;
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy