ValidateClientException.java
package io.extact.rms.client.api.exception;
import java.util.List;
import java.util.stream.Collectors;
public class ValidateClientException extends RentalReservationClientException {
private final transient ValidationErrorMessage errorMessage;
public ValidateClientException(ValidationErrorMessage errorMessage) {
super("サーバ側でバリデーションエラーが発生しました");
this.errorMessage = errorMessage;
}
@Override
public String getMessage() {
String detailMessage = errorMessage.getErrorItems().stream()
.map(t -> t.getFieldName() + ":" + t.getMessage())
.collect(Collectors.joining(","));
return super.getMessage() + System.lineSeparator() + detailMessage;
}
public static class ValidationErrorMessage {
private String errorReason;
private String errorMessage;
private List<ValidationErrorItem> errorItems;
public String getErrorReason() {
return errorReason;
}
public void setErrorReason(String errorReason) {
this.errorReason = errorReason;
}
public String getErrorMessage() {
return errorMessage;
}
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
public List<ValidationErrorItem> getErrorItems() {
return errorItems;
}
public void setErrorItems(List<ValidationErrorItem> errorItems) {
this.errorItems = errorItems;
}
}
public static class ValidationErrorItem {
private String fieldName;
private String message;
public String getFieldName() {
return fieldName;
}
public void setFieldName(String fieldName) {
this.fieldName = fieldName;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
}