This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit f8fe440120ed1f3c7b3d38e737af697da8ae9b75 Author: LanKhuat <[email protected]> AuthorDate: Fri Mar 27 15:46:00 2020 +0700 JAMES-3117 Add Builder in 'Result' class --- .../org/apache/james/core/healthcheck/Result.java | 69 ++++++++++++++++++---- 1 file changed, 57 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/org/apache/james/core/healthcheck/Result.java b/core/src/main/java/org/apache/james/core/healthcheck/Result.java index 6345cda..9f2ffa7 100644 --- a/core/src/main/java/org/apache/james/core/healthcheck/Result.java +++ b/core/src/main/java/org/apache/james/core/healthcheck/Result.java @@ -26,25 +26,66 @@ import com.google.common.base.MoreObjects; public class Result { public static Result healthy(ComponentName componentName) { - return new Result(componentName, ResultStatus.HEALTHY, Optional.empty()); + return Builder.builder().componentName(componentName).status(ResultStatus.HEALTHY).build(); } public static Result unhealthy(ComponentName componentName, String cause) { - return new Result(componentName, ResultStatus.UNHEALTHY, Optional.of(cause)); + return Builder.builder().componentName(componentName).status(ResultStatus.UNHEALTHY).cause(cause).build(); + } + + public static Result unhealthy(ComponentName componentName, String cause, Throwable error) { + return Builder.builder().componentName(componentName).status(ResultStatus.UNHEALTHY).cause(cause).error(error).build(); } public static Result degraded(ComponentName componentName, String cause) { - return new Result(componentName, ResultStatus.DEGRADED, Optional.of(cause)); + return Builder.builder().componentName(componentName).status(ResultStatus.DEGRADED).cause(cause).build(); + } + + public static class Builder { + private ComponentName componentName; + private ResultStatus status; + private String cause; + private Optional<Throwable> error = Optional.empty(); + + public Builder componentName(ComponentName componentName) { + this.componentName = componentName; + return this; + } + + public Builder status(ResultStatus status) { + this.status = status; + return this; + } + + public Builder cause(String cause) { + this.cause = cause; + return this; + } + + public Builder error(Throwable error) { + this.error = Optional.of(error); + return this; + } + + public Result build() { + return new Result(componentName, status, cause, error); + } + + public static Builder builder() { + return new Builder(); + } } private final ComponentName componentName; private final ResultStatus status; - private final Optional<String> cause; + private final String cause; + private final Optional<Throwable> error; - private Result(ComponentName componentName, ResultStatus status, Optional<String> cause) { + public Result(ComponentName componentName, ResultStatus status, String cause, Optional<Throwable> error) { this.componentName = componentName; this.status = status; this.cause = cause; + this.error = error; } public ComponentName getComponentName() { @@ -55,6 +96,14 @@ public class Result { return status; } + public String getCause() { + return cause; + } + + public Optional<Throwable> getError() { + return error; + } + public boolean isHealthy() { return status == ResultStatus.HEALTHY; } @@ -67,10 +116,6 @@ public class Result { return status == ResultStatus.UNHEALTHY; } - public Optional<String> getCause() { - return cause; - } - @Override public final boolean equals(Object o) { if (o instanceof Result) { @@ -78,14 +123,14 @@ public class Result { return Objects.equals(this.componentName, result.componentName) && Objects.equals(this.status, result.status) - && Objects.equals(this.cause, result.cause); + && Objects.equals(this.error, result.error); } return false; } @Override public final int hashCode() { - return Objects.hash(componentName, status, cause); + return Objects.hash(componentName, status, error); } @Override @@ -93,7 +138,7 @@ public class Result { return MoreObjects.toStringHelper(this) .add("componentName", componentName) .add("status", status) - .add("cause", cause) + .add("error", error) .toString(); } } \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
