public void update(final StatusDetail statusDetail) {
   if (!this.statusDetail.getName().equals(statusDetail.getName())) {
     throw new IllegalArgumentException(
         "Must not update StatusDetail with different names. That would be confusing.");
   }
   this.statusDetail = requireNonNull(statusDetail, "Parameter StatusDetail must not be null");
 }
 public void withoutDetail(String key) {
   update(statusDetail.withoutDetail(key));
 }
 public void withDetail(String key, String value) {
   update(statusDetail.withDetail(key, value));
 }
 public void toError(String message) {
   update(statusDetail.toError(message));
 }
 public void toWarning(String message) {
   update(statusDetail.toWarning(message));
 }
 public void toOk(String message) {
   update(statusDetail.toOk(message));
 }