package org.opennaas.core.resources.queue;
import java.util.List;
import java.util.Vector;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import org.opennaas.core.resources.action.ActionResponse;
import org.opennaas.core.resources.action.ActionResponse.STATUS;
import org.opennaas.core.resources.action.IAction;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class QueueResponse {
public ActionResponse prepareResponse = new ActionResponse();
public ActionResponse confirmResponse = new ActionResponse();
public ActionResponse restoreResponse = new ActionResponse();
public ActionResponse refreshResponse = new ActionResponse();
Vector<ActionResponse> responses = new Vector<ActionResponse>();
public String user;
public long totalTime = 0;
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public int getTimestamp() {
return timestamp;
}
public void setTimestamp(int timestamp) {
this.timestamp = timestamp;
}
public int timestamp;
public ActionResponse getPrepareResponse() {
return prepareResponse;
}
public void setPrepareResponse(ActionResponse prepareResponse) {
this.prepareResponse = prepareResponse;
}
public ActionResponse getConfirmResponse() {
return confirmResponse;
}
public void setConfirmResponse(ActionResponse confirmResponse) {
this.confirmResponse = confirmResponse;
}
public Vector<ActionResponse> getResponses() {
return responses;
}
public void setResponses(Vector<ActionResponse> responses) {
this.responses = responses;
}
public static QueueResponse newQueueResponse(List<IAction> actions) {
QueueResponse queueResponse = new QueueResponse();
queueResponse.setPrepareResponse(ActionResponse.newPendingAction(QueueConstants.PREPARE));
queueResponse.setConfirmResponse(ActionResponse.newPendingAction(QueueConstants.CONFIRM));
queueResponse.setRestoreResponse(ActionResponse.newPendingAction(QueueConstants.RESTORE));
queueResponse.setRefreshResponse(ActionResponse.newPendingAction(QueueConstants.REFRESH));
Vector<ActionResponse> responses = new Vector<ActionResponse>();
for (IAction action : actions)
responses.add(ActionResponse.newPendingAction(action.getActionID()));
queueResponse.setResponses(responses);
return queueResponse;
}
public ActionResponse getRestoreResponse() {
return restoreResponse;
}
public void setRestoreResponse(ActionResponse restoreResponse) {
this.restoreResponse = restoreResponse;
}
public ActionResponse getRefreshResponse() {
return refreshResponse;
}
public void setRefreshResponse(ActionResponse refreshResponse) {
this.refreshResponse = refreshResponse;
}
public long getTotalTime() {
return totalTime;
}
public void setTotalTime(long totalTime) {
this.totalTime = totalTime;
}
public boolean isOk() {
for (ActionResponse action : responses)
{
if (action.getStatus() == STATUS.ERROR)
return false;
}
return getConfirmResponse().getStatus().equals(STATUS.OK) && getRefreshResponse().getStatus().equals(STATUS.OK);
}
/* status connection */
// TODO ADD necessary parametes which we will need
}