package voldemort.server.protocol.admin; import java.util.concurrent.atomic.AtomicBoolean; /** */ public class AsyncOperationStatus { private volatile String status = "initializing"; private AtomicBoolean complete = new AtomicBoolean(false); private volatile Exception exception; private final int id; private final String description; public AsyncOperationStatus(int id, String description) { this.id = id; this.description = description; } public String getDescription() { return description; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public boolean isComplete() { return complete.get(); } public void setComplete(boolean complete) { this.complete.getAndSet(complete); } public int getId() { return id; } public Exception getException() { return exception; } public void setException(Exception exception) { this.exception = exception; } public boolean hasException() { return exception != null; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("AsyncOperationStatus(task id = "); builder.append(getId()); builder.append(", description = "); builder.append(getDescription()); builder.append(", complete = "); builder.append(isComplete()); builder.append(", status = "); builder.append(getStatus()); if(this.hasException()) { builder.append(", Exception = "); builder.append(getException()); } builder.append(")"); return builder.toString(); } }