package org.infinispan.server.infinispan.task; import java.util.List; import org.infinispan.tasks.ServerTask; import org.infinispan.tasks.Task; /** * Server task registry. * Stores server tasks that can be executed via {@link org.infinispan.tasks.TaskManager} * * <p/> * Author: Michal Szynkiewicz, michal.l.szynkiewicz@gmail.com * Date: 1/22/16 * Time: 4:03 PM */ public interface ServerTaskRegistry { /** * Lists the registered server tasks. * @return a list of server tasks */ List<Task> getTasks(); /** * Returns a {@link ServerTaskWrapper} for a task with given name. * ServerTaskWrapper wraps {@link ServerTask} to make it compatible with {@link Task} * * @param taskName task name (as returned by {@link ServerTask#getName()}) * @param <T> type of return value of the task * @return server task wrapper for task of given name */ <T> ServerTaskWrapper<T> getTask(String taskName); /** * Checks if task with given name is registered in this registry. * * @param taskName name of the task ({@link ServerTask#getName()) * @return true if task is registered, false otherwise */ boolean handles(String taskName); /** * Register a ServerTask in the registry * @param task server task to register * @param <T> type of the return value of the task */ <T> void addDeployedTask(ServerTask<T> task); /** * Unregister server task with given name * @param name name of the task */ void removeDeployedTask(String name); }