package jalview.ws2.actions.api; import java.util.List; import jalview.ws2.api.JobStatus; /** * {@code TaskI} objects represent running services. Tasks are created by * concrete implementations of {@link ActionI} and provide a view of the state * of the underlying job(s). * * @author mmwarowny * * @param * task result type */ public interface TaskI { /** * Get the universal identifier of this task. * * @return identifier */ long getUid(); /** * Get the current status of the task. The resultant status should be a * combination of individual sub-job statuses. * * @return global status of */ JobStatus getStatus(); /** * Get the current list of sub-jobs of that task. * * @return sub-jobs */ List getSubJobs(); /** * Get the last result of the task or {@code null} if not present. Note that * the result is subject to change for restartable tasks. * * @return last task result */ T getResult(); /** * Cancel the task, stop all sub-jobs running on a server and stop all threads * managing this task. */ void cancel(); }