public abstract class AbstractTask extends java.lang.Object implements Task
Task.TaskStateModel
Constructor and Description |
---|
AbstractTask(java.util.UUID id) |
Modifier and Type | Method and Description |
---|---|
protected void |
applyTaskStateModel(Task.TaskStateModel model)
Can be overridden by sub classes to receive the state model before the task is resumed.
|
void |
cancel(long timeoutMS)
When called, the task should stop as quickly as possible.
|
protected abstract void |
doTaskWork(TaskContext context)
Should execute the work of the task.
|
protected TaskContext |
getCurrentContext() |
java.util.UUID |
getId() |
protected LoggerEx |
getLogger() |
protected abstract java.lang.String |
getLoggerName() |
protected java.util.Optional<Task.TaskStateModel> |
getTaskStateModel()
Can be overridded by sub tasks to provide a state model when the task is suspended.
|
protected boolean |
isStopped() |
void |
resume(Task.TaskStateModel state) |
void |
run(TaskContext context)
Executes the task.
|
java.util.Optional<Task.TaskStateModel> |
suspend(long timeoutMS)
When called, the task should stop as quickly as possible.
|
protected abstract java.lang.String getLoggerName()
protected LoggerEx getLogger()
protected TaskContext getCurrentContext()
protected boolean isStopped()
public final void run(TaskContext context) throws java.lang.Exception
Task
public java.util.Optional<Task.TaskStateModel> suspend(long timeoutMS) throws java.util.concurrent.TimeoutException, java.lang.InterruptedException
Task
public void resume(Task.TaskStateModel state)
public void cancel(long timeoutMS) throws java.util.concurrent.TimeoutException, java.lang.InterruptedException
Task
protected java.util.Optional<Task.TaskStateModel> getTaskStateModel()
protected void applyTaskStateModel(Task.TaskStateModel model)
protected abstract void doTaskWork(TaskContext context) throws java.lang.Exception
Inside of this function, the task should periodically check isStopped to see if the task has been paused or canceled.
java.lang.Exception