package io.lumify.core.model.longRunningProcess; import io.lumify.core.user.User; import org.json.JSONObject; import org.securegraph.Authorizations; import java.util.List; public abstract class LongRunningProcessRepository { public static final String VISIBILITY_STRING = "longRunningProcess"; public static final String LONG_RUNNING_PROCESS_CONCEPT_IRI = "http://lumify.io/longRunningProcess#longRunningProcess"; public static final String LONG_RUNNING_PROCESS_TO_USER_EDGE_IRI = "http://lumify.io/longRunningProcess#hasLongRunningProcess"; public static final String LONG_RUNNING_PROCESS_ID_PREFIX = "LONG_RUNNING_PROCESS_"; public static final String OWL_IRI = "http://lumify.io/longRunningProcess"; public abstract String enqueue(JSONObject longRunningProcessQueueItem, User user, Authorizations authorizations); public void beginWork(JSONObject longRunningProcessQueueItem) { } public abstract void ack(JSONObject longRunningProcessQueueItem); public abstract void nak(JSONObject longRunningProcessQueueItem, Throwable ex); public abstract List<JSONObject> getLongRunningProcesses(User user); public abstract JSONObject findById(String longRunningProcessId, User user); public abstract void cancel(String longRunningProcessId, User user); public abstract void reportProgress(JSONObject longRunningProcessQueueItem, double progressPercent, String message); public abstract void delete(String longRunningProcessId, User authUser); }