package com.bocloud.ims.service.upgrade;

import java.util.ArrayList;
import java.util.List;

/**
 * 系统升级
 * @author luyanchao
 * @date 2021-06-09
 */
public abstract class AbstractUpgradeTask implements UpgradeTask {

    /**
     * 当前任务需要在哪些任务执行成功后才能执行
     */
    private final List<UpgradeTask> dependOnTasks = new ArrayList<>();

    /**
     * 当前任务需要在哪些任务执行成功后才能执行
     * @return 当前任务依赖的任务列表
     */
    @Override
    public List<UpgradeTask> getDependOnTasks() {
        return this.dependOnTasks;
    }

    /**
     * 设置任务依赖关系
     * @param task 被依赖的任务
     * @return this
     */
    public AbstractUpgradeTask dependOn(AbstractUpgradeTask task) {
        this.dependOnTasks.add(task);
        return this;
    }
}
