View Javadoc
1   package io.extact.rms.client.api.exception;
2   
3   import java.util.List;
4   import java.util.stream.Collectors;
5   
6   public class ValidateClientException extends RentalReservationClientException {
7   
8       private final transient ValidationErrorMessage errorMessage;
9   
10      public ValidateClientException(ValidationErrorMessage errorMessage) {
11          super("サーバ側でバリデーションエラーが発生しました");
12          this.errorMessage = errorMessage;
13      }
14  
15      @Override
16      public String getMessage() {
17          String detailMessage = errorMessage.getErrorItems().stream()
18                  .map(t -> t.getFieldName() + ":" + t.getMessage())
19                  .collect(Collectors.joining(","));
20          return super.getMessage() + System.lineSeparator() + detailMessage;
21      }
22  
23      public static class ValidationErrorMessage {
24          private String errorReason;
25          private String errorMessage;
26          private List<ValidationErrorItem> errorItems;
27  
28          public String getErrorReason() {
29              return errorReason;
30          }
31          public void setErrorReason(String errorReason) {
32              this.errorReason = errorReason;
33          }
34          public String getErrorMessage() {
35              return errorMessage;
36          }
37          public void setErrorMessage(String errorMessage) {
38              this.errorMessage = errorMessage;
39          }
40          public List<ValidationErrorItem> getErrorItems() {
41              return errorItems;
42          }
43          public void setErrorItems(List<ValidationErrorItem> errorItems) {
44              this.errorItems = errorItems;
45          }
46      }
47  
48      public static class ValidationErrorItem {
49          private String fieldName;
50          private String message;
51          public String getFieldName() {
52              return fieldName;
53          }
54          public void setFieldName(String fieldName) {
55              this.fieldName = fieldName;
56          }
57          public String getMessage() {
58              return message;
59          }
60          public void setMessage(String message) {
61              this.message = message;
62          }
63      }
64  }