package com.ruoyi.service.impl;

import com.ruoyi.domain.Task;
import com.ruoyi.service.TaskState;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Transactional
@Component
public class TaskStateFacade implements TaskState {

    @Autowired
    private TaskStateContext taskStateContext;

    @Override
    public void doCreate(Task task, List<String> taskList) {
        taskStateContext.getResource(task.getTaskStatus()).doCreate(task, taskList);
    }

    @Override
    public void doStart(Task task) {
        taskStateContext.getResource(task.getTaskStatus()).doStart(task);
    }

    @Override
    public void doSubmit(Task task) {
        taskStateContext.getResource(task.getTaskStatus()).doSubmit(task);
    }
}