import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import java.io.Serializable;
@Builder
@Data
@AllArgsConstructor
public class ErrorMessage implements Serializable {
private static final long serialVersionUID = 1L;
private String field;
private String message;
}
import java.io.Serializable;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
@Builder
@ToString
@Accessors(chain = true)
@AllArgsConstructor
public class R<T> implements Serializable
{
private static final long serialVersionUID = 1L;
@Builder.Default
@Getter
@Setter
private int code = 0;
@Builder.Default
@Getter
@Setter
private String msg = "success";
@Getter
@Setter
private List<ErrorMessage> errorMessage;
@Getter
@Setter
private T data;
@Getter
@Setter
private boolean success;
public R()
{
super();
}
public R(T data)
{
super();
this.data = data;
}
public R(T data, String msg)
{
super();
this.data = data;
this.msg = msg;
}
public R(Throwable e)
{
super();
this.msg = e.getMessage();
this.code = CommonConstants.FAIL;
}
public static <T> R<T> ok()
{
return R.restResult(null, 0, null);
}
public static <T> R<T> ok(T data)
{
return R.restResult(data, 0, null);
}
public static <T> R<T> ok(T data, String msg)
{
return R.restResult(data, 0, msg);
}
public static <T> R<T> fail()
{
return R.restResult(null, 1, null);
}
public static <T> R<T> fail(int code)
{
return R.restResult(null, code, null);
}
public static <T> R<T> fail(String msg)
{
return R.restResult(null, 1, msg);
}
public static <T> R<T> fail(int code, String msg)
{
return R.restResult(null, code, msg);
}
public static <T> R<T> fail(List<ErrorMessage> errorMessages)
{
return R.restErrorMessageResult(null, 1, errorMessages);
}
public static <T> R<T> fail(T data)
{
return R.restResult(data, 1, null);
}
public static <T> R<T> fail(T data, String msg)
{
return R.restResult(data, 1, msg);
}
private static <T> R<T> restResult(T data, int code, String msg)
{
R<T> apiResult = new R<>();
apiResult.setCode(code);
if(code==0) {
apiResult.setSuccess(true);
}else if(code==1) {
apiResult.setSuccess(false);
}
apiResult.setData(data);
apiResult.setMsg(msg);
return apiResult;
}
private static <T> R<T> restErrorMessageResult(T data, int code, List<ErrorMessage> errorMessages)
{
R<T> apiResult = new R<>();
apiResult.setCode(code);
if(code==0) {
apiResult.setSuccess(true);
}else if(code==1) {
apiResult.setSuccess(false);
}
apiResult.setData(data);
apiResult.setErrorMessage(errorMessages);
return apiResult;
}
public static R<?> failed(String localizedMessage) {
return R.restResult(null, 1, localizedMessage);
}
}