![JAR search and dependency download from the Maven repository](/logo.png)
de.otto.edison.status.indicator.MutableStatusDetailIndicator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of edison-status Show documentation
Show all versions of edison-status Show documentation
Status library of the edison-microservice project.
package de.otto.edison.status.indicator;
import de.otto.edison.status.domain.StatusDetail;
import net.jcip.annotations.ThreadSafe;
import static java.util.Objects.requireNonNull;
@ThreadSafe
public class MutableStatusDetailIndicator implements StatusDetailIndicator {
private volatile StatusDetail statusDetail;
public MutableStatusDetailIndicator(final StatusDetail initialStatusDetail) {
this.statusDetail = requireNonNull(initialStatusDetail, "Initial StatusDetail must not be null");
}
@Override
public StatusDetail statusDetail() {
return statusDetail;
}
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 toOk(String message) {
update(statusDetail.toOk(message));
}
public void toWarning(String message) {
update(statusDetail.toWarning(message));
}
public void toError(String message) {
update(statusDetail.toError(message));
}
public void withDetail(String key, String value) {
update(statusDetail.withDetail(key, value));
}
public void withoutDetail(String key) {
update(statusDetail.withoutDetail(key));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy