package foundation.io.engine;
|
|
import java.util.Date;
|
import java.util.List;
|
|
import foundation.data.entity.EntitySet;
|
import foundation.io.object.Titles;
|
import foundation.json.IJSONProvider;
|
import foundation.json.IJSONWriter;
|
import foundation.monitor.MessageLine;
|
import foundation.monitor.Progressor;
|
import foundation.token.IUser;
|
import foundation.translator.Translator;
|
|
|
public class IOResult implements IJSONProvider {
|
|
private Progressor progressor;
|
private IOState state;
|
private Date beginTime;
|
private Date endTime;
|
private String fileURL;
|
private String remark;
|
private Titles titles;
|
private EntitySet entitySet;
|
|
|
public IOResult(Progressor progressor) {
|
beginTime = new Date();
|
state = IOState.NotKnown;
|
|
this.progressor = progressor;
|
}
|
|
public void setSkip(IOState currentState) throws Exception {
|
state = currentState;
|
remark = "系统忙,请稍后再试";
|
}
|
|
public void setSkip(IOState currentState, IUser user, Date date) throws Exception {
|
state = currentState;
|
remark = user.getName() + "在【" + Translator.toString(date) + "】已经运行...";
|
}
|
|
public IOState getState() {
|
return state;
|
}
|
|
public void setState(IOState state) {
|
this.state = state;
|
|
if (IOState.Finish == state) {
|
endTime = new Date();
|
}
|
}
|
|
public void writeBegin() {
|
beginTime = new Date();
|
}
|
|
public Progressor getProgressor() {
|
return progressor;
|
}
|
|
public Date getBeginTime() {
|
return beginTime;
|
}
|
|
public Date getEndTime() {
|
return endTime;
|
}
|
|
public void setFileURL(String fileURL) {
|
this.fileURL = fileURL;
|
}
|
|
public void setTitles(Titles titles) {
|
this.titles = titles;
|
}
|
|
public void setEntitySet(EntitySet entitySet) {
|
this.entitySet = entitySet;
|
}
|
|
@Override
|
public void writeJSON(IJSONWriter writer) {
|
writer.beginObject();
|
|
//1.1 write property
|
writer.writeJSON("state", Translator.toJSONString(state.name(), "null"));
|
// writer.writeJSON("fileURL", Translator.toJSONString(fileURL, "null"));
|
writer.writeJSON("begintime", Translator.toJSONString(beginTime, "null"));
|
writer.writeJSON("endTime", Translator.toJSONString(endTime, "null"));
|
writer.writeJSON("remark", Translator.toJSONString(remark, "null"));
|
|
//1.2 write messages
|
writer.beginArray("messagelist");
|
if (progressor != null) {
|
List<MessageLine> messageList = progressor.getMessageList();
|
int max = messageList.size();
|
|
for (int i = 0; i < max; i++) {
|
MessageLine message = messageList.get(i);
|
writer.write(message.getValue());
|
|
}
|
}
|
writer.endArray();
|
writer.endObject();
|
}
|
|
public EntitySet getEntitySet() {
|
return entitySet;
|
}
|
|
public Titles getTitles() {
|
return titles;
|
}
|
|
}
|