All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.andyshao.exception.Result Maven / Gradle / Ivy

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