|
|
|
@ -43,15 +43,15 @@ final class DefaultErrorResponseBuilder implements ErrorResponse.Builder { |
|
|
|
|
|
|
|
|
|
|
|
private final ProblemDetail problemDetail; |
|
|
|
private final ProblemDetail problemDetail; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String typeMessageCode; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String titleMessageCode; |
|
|
|
|
|
|
|
|
|
|
|
private String detailMessageCode; |
|
|
|
private String detailMessageCode; |
|
|
|
|
|
|
|
|
|
|
|
@Nullable |
|
|
|
@Nullable |
|
|
|
private Object[] detailMessageArguments; |
|
|
|
private Object[] detailMessageArguments; |
|
|
|
|
|
|
|
|
|
|
|
private String titleMessageCode; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String typeMessageCode; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DefaultErrorResponseBuilder(Throwable ex, HttpStatusCode statusCode, String detail) { |
|
|
|
DefaultErrorResponseBuilder(Throwable ex, HttpStatusCode statusCode, String detail) { |
|
|
|
Assert.notNull(ex, "Throwable is required"); |
|
|
|
Assert.notNull(ex, "Throwable is required"); |
|
|
|
@ -60,9 +60,9 @@ final class DefaultErrorResponseBuilder implements ErrorResponse.Builder { |
|
|
|
this.exception = ex; |
|
|
|
this.exception = ex; |
|
|
|
this.statusCode = statusCode; |
|
|
|
this.statusCode = statusCode; |
|
|
|
this.problemDetail = ProblemDetail.forStatusAndDetail(statusCode, detail); |
|
|
|
this.problemDetail = ProblemDetail.forStatusAndDetail(statusCode, detail); |
|
|
|
this.detailMessageCode = ErrorResponse.getDefaultDetailMessageCode(ex.getClass(), null); |
|
|
|
|
|
|
|
this.titleMessageCode = ErrorResponse.getDefaultTitleMessageCode(ex.getClass()); |
|
|
|
|
|
|
|
this.typeMessageCode = ErrorResponse.getDefaultTypeMessageCode(ex.getClass()); |
|
|
|
this.typeMessageCode = ErrorResponse.getDefaultTypeMessageCode(ex.getClass()); |
|
|
|
|
|
|
|
this.titleMessageCode = ErrorResponse.getDefaultTitleMessageCode(ex.getClass()); |
|
|
|
|
|
|
|
this.detailMessageCode = ErrorResponse.getDefaultDetailMessageCode(ex.getClass(), null); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -81,52 +81,52 @@ final class DefaultErrorResponseBuilder implements ErrorResponse.Builder { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public ErrorResponse.Builder detail(String detail) { |
|
|
|
public ErrorResponse.Builder type(URI type) { |
|
|
|
this.problemDetail.setDetail(detail); |
|
|
|
this.problemDetail.setType(type); |
|
|
|
return this; |
|
|
|
return this; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public ErrorResponse.Builder detailMessageCode(String messageCode) { |
|
|
|
public ErrorResponse.Builder typeMessageCode(String messageCode) { |
|
|
|
Assert.notNull(messageCode, "`detailMessageCode` is required"); |
|
|
|
this.typeMessageCode = messageCode; |
|
|
|
this.detailMessageCode = messageCode; |
|
|
|
|
|
|
|
return this; |
|
|
|
return this; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public ErrorResponse.Builder detailMessageArguments(Object... messageArguments) { |
|
|
|
public ErrorResponse.Builder title(@Nullable String title) { |
|
|
|
this.detailMessageArguments = messageArguments; |
|
|
|
this.problemDetail.setTitle(title); |
|
|
|
return this; |
|
|
|
return this; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public ErrorResponse.Builder type(URI type) { |
|
|
|
public ErrorResponse.Builder titleMessageCode(String messageCode) { |
|
|
|
this.problemDetail.setType(type); |
|
|
|
Assert.notNull(messageCode, "`titleMessageCode` is required"); |
|
|
|
|
|
|
|
this.titleMessageCode = messageCode; |
|
|
|
return this; |
|
|
|
return this; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public ErrorResponse.Builder typeMessageCode(String messageCode) { |
|
|
|
public ErrorResponse.Builder instance(@Nullable URI instance) { |
|
|
|
this.typeMessageCode = messageCode; |
|
|
|
this.problemDetail.setInstance(instance); |
|
|
|
return this; |
|
|
|
return this; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public ErrorResponse.Builder title(@Nullable String title) { |
|
|
|
public ErrorResponse.Builder detail(String detail) { |
|
|
|
this.problemDetail.setTitle(title); |
|
|
|
this.problemDetail.setDetail(detail); |
|
|
|
return this; |
|
|
|
return this; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public ErrorResponse.Builder titleMessageCode(String messageCode) { |
|
|
|
public ErrorResponse.Builder detailMessageCode(String messageCode) { |
|
|
|
Assert.notNull(messageCode, "`titleMessageCode` is required"); |
|
|
|
Assert.notNull(messageCode, "`detailMessageCode` is required"); |
|
|
|
this.titleMessageCode = messageCode; |
|
|
|
this.detailMessageCode = messageCode; |
|
|
|
return this; |
|
|
|
return this; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public ErrorResponse.Builder instance(@Nullable URI instance) { |
|
|
|
public ErrorResponse.Builder detailMessageArguments(Object... messageArguments) { |
|
|
|
this.problemDetail.setInstance(instance); |
|
|
|
this.detailMessageArguments = messageArguments; |
|
|
|
return this; |
|
|
|
return this; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -140,8 +140,8 @@ final class DefaultErrorResponseBuilder implements ErrorResponse.Builder { |
|
|
|
public ErrorResponse build() { |
|
|
|
public ErrorResponse build() { |
|
|
|
return new SimpleErrorResponse( |
|
|
|
return new SimpleErrorResponse( |
|
|
|
this.exception, this.statusCode, this.headers, this.problemDetail, |
|
|
|
this.exception, this.statusCode, this.headers, this.problemDetail, |
|
|
|
this.detailMessageCode, this.detailMessageArguments, this.titleMessageCode, |
|
|
|
this.typeMessageCode, this.titleMessageCode, this.detailMessageCode, |
|
|
|
this.typeMessageCode); |
|
|
|
this.detailMessageArguments); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -158,28 +158,28 @@ final class DefaultErrorResponseBuilder implements ErrorResponse.Builder { |
|
|
|
|
|
|
|
|
|
|
|
private final ProblemDetail problemDetail; |
|
|
|
private final ProblemDetail problemDetail; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final String typeMessageCode; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final String titleMessageCode; |
|
|
|
|
|
|
|
|
|
|
|
private final String detailMessageCode; |
|
|
|
private final String detailMessageCode; |
|
|
|
|
|
|
|
|
|
|
|
@Nullable |
|
|
|
@Nullable |
|
|
|
private final Object[] detailMessageArguments; |
|
|
|
private final Object[] detailMessageArguments; |
|
|
|
|
|
|
|
|
|
|
|
private final String titleMessageCode; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final String typeMessageCode; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SimpleErrorResponse( |
|
|
|
SimpleErrorResponse( |
|
|
|
Throwable ex, HttpStatusCode statusCode, @Nullable HttpHeaders headers, ProblemDetail problemDetail, |
|
|
|
Throwable ex, HttpStatusCode statusCode, @Nullable HttpHeaders headers, ProblemDetail problemDetail, |
|
|
|
String detailMessageCode, @Nullable Object[] detailMessageArguments, String titleMessageCode, |
|
|
|
String typeMessageCode, String titleMessageCode, String detailMessageCode, |
|
|
|
String typeMessageCode) { |
|
|
|
@Nullable Object[] detailMessageArguments) { |
|
|
|
|
|
|
|
|
|
|
|
this.exception = ex; |
|
|
|
this.exception = ex; |
|
|
|
this.statusCode = statusCode; |
|
|
|
this.statusCode = statusCode; |
|
|
|
this.headers = (headers != null ? headers : HttpHeaders.EMPTY); |
|
|
|
this.headers = (headers != null ? headers : HttpHeaders.EMPTY); |
|
|
|
this.problemDetail = problemDetail; |
|
|
|
this.problemDetail = problemDetail; |
|
|
|
|
|
|
|
this.typeMessageCode = typeMessageCode; |
|
|
|
|
|
|
|
this.titleMessageCode = titleMessageCode; |
|
|
|
this.detailMessageCode = detailMessageCode; |
|
|
|
this.detailMessageCode = detailMessageCode; |
|
|
|
this.detailMessageArguments = detailMessageArguments; |
|
|
|
this.detailMessageArguments = detailMessageArguments; |
|
|
|
this.titleMessageCode = titleMessageCode; |
|
|
|
|
|
|
|
this.typeMessageCode = typeMessageCode; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@ -198,23 +198,23 @@ final class DefaultErrorResponseBuilder implements ErrorResponse.Builder { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public String getDetailMessageCode() { |
|
|
|
public String getTypeMessageCode() { |
|
|
|
return this.detailMessageCode; |
|
|
|
return this.typeMessageCode; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public Object[] getDetailMessageArguments() { |
|
|
|
public String getTitleMessageCode() { |
|
|
|
return this.detailMessageArguments; |
|
|
|
return this.titleMessageCode; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public String getTitleMessageCode() { |
|
|
|
public String getDetailMessageCode() { |
|
|
|
return this.titleMessageCode; |
|
|
|
return this.detailMessageCode; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public String getTypeMessageCode() { |
|
|
|
public Object[] getDetailMessageArguments() { |
|
|
|
return this.typeMessageCode; |
|
|
|
return this.detailMessageArguments; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
|