All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.talanlabs.taskmanager.engine.configuration.persistance.ITaskManagerWriter Maven / Gradle / Ivy

The newest version!
package com.talanlabs.taskmanager.engine.configuration.persistance;

import com.talanlabs.taskmanager.engine.task.ICommonTask;
import com.talanlabs.taskmanager.engine.task.IStatusTask;
import com.talanlabs.taskmanager.engine.task.ISubTask;
import com.talanlabs.taskmanager.model.ITaskCluster;
import com.talanlabs.taskmanager.model.ITaskObject;
import org.apache.commons.lang3.tuple.Pair;

import java.util.List;
import java.util.Map;

public interface ITaskManagerWriter {

    /**
     * Save a new task cluster for task object and save all tasks
     *
     * @param taskCluster new taskCluster
     */
    ITaskCluster saveNewTaskCluster(ITaskCluster taskCluster);

    /**
     * Save taskCluster, add taskNode for each taskObject
     *
     * @param taskCluster
     * @param taskObjectTasks
     */
    ITaskCluster saveNewGraphFromTaskCluster(ITaskCluster taskCluster, List> taskObjectTasks);

    /**
     * Save remove taskObjects to task cluster
     *
     * @param taskCluster
     * @param taskObjects
     */
    void saveRemoveTaskObjectsFromTaskCluster(ITaskCluster taskCluster, List taskObjects);

    /**
     * Save move task objects to task cluster
     *
     * @param dstTaskCluster
     * @param modifyClusterMap
     * @return
     */
    ITaskCluster saveMoveTaskObjectsToTaskCluster(ITaskCluster dstTaskCluster, Map> modifyClusterMap);

    /**
     * When taskCluster is finish (no task current)
     *
     * @param taskCluster
     * @return cluster
     */
    ITaskCluster archiveTaskCluster(ITaskCluster taskCluster);

    /**
     * Save next tasks in task cluster
     *
     * @param taskCluster       cluster
     * @param toDoneTask        task is done
     * @param taskServiceResult result
     * @param nextCurrentTasks  next tasks
     */
    void saveNextTasksInTaskCluster(ITaskCluster taskCluster, ICommonTask toDoneTask, Object taskServiceResult, List nextCurrentTasks);

    /**
     * @param taskCluster
     * @param toDoneTask
     * @param taskServiceResult
     * @param newTasks
     * @param linkNextTasksMap
     * @param otherBranchFirstTasksMap
     * @param nextCurrentTasks
     * @param deleteTasks
     */
    void saveNewNextTasksInTaskCluster(ITaskCluster taskCluster, IStatusTask toDoneTask, Object taskServiceResult, List newTasks, Map> linkNextTasksMap,
            Map> otherBranchFirstTasksMap, List nextCurrentTasks, List deleteTasks);

    /**
     * Task is nothing
     *
     * @param taskCluster
     * @param nothingTask
     * @param taskServiceResult
     * @param errorMessage
     */
    void saveNothingTask(ITaskCluster taskCluster, ICommonTask nothingTask, Object taskServiceResult, Throwable errorMessage);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy