Browse Source

Polishing in DefaultErrorResponseBuilder

Closes gh-30566
pull/30690/head
rstoyanchev 3 years ago
parent
commit
2e43412a82
  1. 84
      spring-web/src/main/java/org/springframework/web/DefaultErrorResponseBuilder.java

84
spring-web/src/main/java/org/springframework/web/DefaultErrorResponseBuilder.java

@ -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

Loading…
Cancel
Save