package org.orienteer.core.tasks;
/**
* Interface for task sessions
*/
public interface ITaskSession {
/**
* Statuses of task session
*/
public enum Status{
NOT_STARTED, RUNNING, FINISHED, INTERRUPTED, DETACHED
}
/**
*
*/
public enum ErrorTypes{
NONE,UNKNOWN_ERROR
}
public static final String TASK_SESSION_CLASS = "OTaskSession";
/**
* fields of task session ODocument
*/
public enum Field{
THREAD_NAME("threadName"),
STATUS("status"),
TASK_LINK("task"),
START_TIMESTAMP("startTimestamp"),
FINISH_TIMESTAMP("finishTimestamp"),
PROGRESS("progress"),
PROGRESS_CURRENT("progressCurrent"),
PROGRESS_FINAL("progressFinal"),
IS_STOPPABLE("isStoppable"),
DELETE_ON_FINISH("deleteOnFinish"),
ERROR_TYPE("errorType"),
ERROR("error");
private String fieldName;
public String fieldName(){ return fieldName;}
private Field(String fieldName){ this.fieldName = fieldName;}
}
public ITaskSession start();
public ITaskSession finish();
public ITaskSession interrupt() throws Exception;
public boolean isInterruptable();
public Status getStatus();
public OTaskSessionRuntime getOTaskSessionRuntime();
public OTaskSession getOTaskSessionPersisted();
public ITaskSession setCallback(ITaskSessionCallback callback);
public ITaskSessionCallback getCallback();
public ITaskSession setDeleteOnFinish(boolean deleteOnFinish);
public boolean isDeleteOnFinish();
public ITaskSession setProgress(double progress);
public double getProgress();
public ITaskSession setFinalProgress(double progress);
public double getFinalProgress();
public ITaskSession setCurrentProgress(double progress);
public double getCurrentProgress();
public ITaskSession incrementCurrentProgress();
}