
io.gallery.db.exception.DataBaseDataBindingException Maven / Gradle / Ivy
package io.gallery.db.exception;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.gallery.db.util.DataBaseBindingResultUtil;
import org.springframework.validation.BindingResult;
import java.util.*;
/**
* 自定义数据绑定异常
*/
@JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE)
public class DataBaseDataBindingException extends RuntimeException {
private static final long serialVersionUID = 4886698281191876208L;
/**
* 是否校验成功
*/
@JsonProperty
private boolean success = true;
/**
* 异常
*/
private Exception exception;
/**
* 请求体
*/
private Object body;
/**
* 全局错误列表
*/
@JsonProperty
private List globalErrors = new ArrayList<>();
/**
* 字段属性校验错误列表
*/
@JsonProperty
private Map> fieldErrors = new HashMap<>();
/**
* @param error 错误信息
* @param e 异常
*/
public DataBaseDataBindingException(String error, Exception e) {
success = false;
exception = e;
globalErrors = new ArrayList() {{
add(error);
}};
}
/**
* @param error 错误信息
* @param e 异常
* @param in 请求入参
*/
public DataBaseDataBindingException(String error, Exception e, Object in) {
success = false;
exception = e;
body = in;
globalErrors = new ArrayList() {{
add(error);
}};
}
public DataBaseDataBindingException(BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
success = false;
globalErrors = DataBaseBindingResultUtil.getGlobalErrors(bindingResult);
fieldErrors = DataBaseBindingResultUtil.getFieldErros(bindingResult);
}
}
// getter & setter
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public List getGlobalErrors() {
return globalErrors;
}
public void setGlobalErrors(List globalErrors) {
this.globalErrors = globalErrors;
}
public Map> getFieldErrors() {
return fieldErrors;
}
public void setFieldErrors(Map> fieldErrors) {
this.fieldErrors = fieldErrors;
}
@Override
public String getMessage() {
return Optional.ofNullable(globalErrors).map(List::toString).orElse(super.getMessage());
}
public Exception getException() {
return exception;
}
public void setException(Exception exception) {
this.exception = exception;
}
public Object getBody() {
return body;
}
public void setBody(Object body) {
this.body = body;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy