/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.wps;
import java.util.List;
import org.geoserver.wps.executor.ExecutionStatus;
import org.geotools.data.Query;
import org.opengis.filter.Filter;
/**
* Stores and allows retrieval of execution status information for the various running and recently
* completed processes
*/
public interface ProcessStatusStore {
/**
* Saves or updates a given process status
*/
void save(ExecutionStatus status);
/**
* Retrieves a specific status by id
*/
ExecutionStatus get(String executionId);
/**
* Removes a specific status by id
*/
ExecutionStatus remove(String executionId);
/**
* Clears process statuses matching a certain condition, and returns the number of statuses
* removed
*/
int remove(Filter filter);
/**
* Retrieves process statuses based on the given conditions. The store should honor the filter,
* sorting and paging conditions, ignoring the others
*/
List<ExecutionStatus> list(Query query);
/**
* Does the underlying store support the use of Predicates like FullText
* @return true if FULLTEXT searches are supported.
*/
boolean supportsPredicate();
/**
* Does the underlying store support Paging
* @return true if Paging in searches is supported.
*/
boolean supportsPaging();
}