@rs-box/ez-flow
Version:
Library for a workflow engine
54 lines (53 loc) • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ParallelWorkReport = void 0;
const work_context_1 = require("./work-context");
const work_status_1 = require("./work-status");
class ParallelWorkReport {
constructor(workReportList) {
this.workReportList = workReportList;
}
getError() {
const errors = [];
for (const workReport of this.workReportList) {
const error = workReport.getError();
if (error != null) {
errors.push(error);
}
}
return errors;
}
getWorkContext() {
const workContext = new work_context_1.WorkContext();
const multiResult = [];
for (const workReport of this.workReportList) {
const tmpWorkContext = workReport.getWorkContext();
tmpWorkContext.forEach((value, key) => {
if (key === work_context_1.WorkContext.CTX_RESULT) {
multiResult.push(value);
}
else {
workContext.set(key, value);
}
});
}
if (multiResult.length > 0) {
workContext.set(work_context_1.WorkContext.CTX_RESULT_LIST, multiResult);
}
return workContext;
}
getWorkStatus() {
for (const workReport of this.workReportList) {
const workStatus = workReport.getWorkStatus();
if (workStatus === work_status_1.WorkStatus.FAILED ||
workStatus === work_status_1.WorkStatus.BROKEN) {
return workStatus;
}
}
return work_status_1.WorkStatus.COMPLETED;
}
getWorkList() {
return this.workReportList;
}
}
exports.ParallelWorkReport = ParallelWorkReport;