/*
* Created on 06.03.2005
*/
package jplagWebService.serverAccess;
import jplagWebService.server.Status;
/**
* Redirects status changes to AccessStructure.status object
*
* @author Emeric Kwemou
*/
public class StatusDecorator {
public static final int UPLOADING = 0;
public static final int WAITING_IN_QUEUE = 50;
public static final int COMPARE_SOURCE_DONE = 300;
private Status status;
public StatusDecorator(Status status) {
this.status = status;
ensureSerializable();
}
public Status getStatus() {
return status;
}
public int getState() {
return status.getState();
}
public void setState(int state) {
status.setState(state);
}
public int getProgress() {
return status.getProgress();
}
public void setProgress(int progress) {
status.setProgress(progress);
}
public java.lang.String getReport() {
return status.getReport();
}
public void setReport(java.lang.String report) {
this.status.setReport(report);
}
public void addReport(String report) {
if(status.getReport().length()==0) status.setReport(report);
else status.setReport(status.getReport() + "\n" + report);
}
/**
* @param state
* New state to be added, only added if there wasn't a previous error
* @param report
* New message to be added to the report
*/
public void add(int state, String report) {
if (getState() < 400) setState(state);
addReport(report);
}
public void add(int state, int progress, String report) {
if(getState() < 400) setState(state);
setProgress(progress);
addReport(report);
}
public void add(jplag.ExitException ex) {
add(ex.getState(), ex.getReport());
}
/**
* Ensure that nothing is null
*/
private void ensureSerializable() {
if (status == null) {
status = new Status(0, 0, "");
return;
}
if (status.getReport() == null)
status.setReport("");
}
}