package org.ovirt.engine.core.vdsbroker.irsbroker;
import java.util.Map;
import org.ovirt.engine.core.common.utils.ToStringBuilder;
import org.ovirt.engine.core.vdsbroker.jsonrpc.FutureMap;
import org.ovirt.engine.core.vdsbroker.vdsbroker.Status;
public class StatusReturn {
private static final String STATUS = "status";
private Status status;
protected Map<String, Object> innerMap;
public StatusReturn(Map<String, Object> innerMap) {
this.innerMap = innerMap;
}
public boolean isRequestCompleted() {
if (innerMap instanceof FutureMap) {
return ((FutureMap) innerMap).isRequestCompleted();
}
return true;
}
@SuppressWarnings("unchecked")
public Status getStatus() {
if (status == null) {
Map<String, Object> statusMap = (Map<String, Object>) innerMap.get(STATUS);
status = new Status(statusMap);
}
return status;
}
public void setStatus(Status status) {
this.status = status;
}
@Override
public String toString() {
return ToStringBuilder.forInstance(this)
.append("status", isRequestCompleted() ? getStatus() : "Pending Response")
.build();
}
}