/* Copyright (c) 2001 - 2013 OpenPlans - www.openplans.org. 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.io.File;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.opengis.wps10.DescribeProcessType;
import net.opengis.wps10.ExecuteResponseType;
import net.opengis.wps10.ExecuteType;
import net.opengis.wps10.GetCapabilitiesType;
import net.opengis.wps10.ProcessDescriptionsType;
import net.opengis.wps10.WPSCapabilitiesType;
/**
* @author Lucas Reed, Refractions Research Inc
* @author Justin Deoliveira, OpenGEO
*/
public interface WebProcessingService {
/**
* Generates a XML object for the return of the getCapabilities request
*
*/
WPSCapabilitiesType getCapabilities(GetCapabilitiesType request) throws WPSException;
/**
* Generates a XML object for the return of the describeProcess request
*/
ProcessDescriptionsType describeProcess(DescribeProcessType request) throws WPSException;
/**
* Executes a execute request and writes output to the Servlet response
*/
ExecuteResponseType execute(ExecuteType request) throws WPSException;
/**
* Returns the status of a given process execution, either as a {@link ExecuteResponseType} or
* as a stored response File
* @param request
* @return
* @throws WPSException
*/
Object getExecutionStatus(GetExecutionStatusType request) throws WPSException;
/**
* Executes a get schema request and writes the output to the Servlet response
*
* @param request
* @param response
* @throws WPSException
*/
void getSchema(HttpServletRequest request, HttpServletResponse response) throws WPSException;
/**
* Returns a file stored as a reference in the specified execution
*
* @param request
* @return
* @throws WPSException
*/
File getExecutionResult(GetExecutionResultType request) throws WPSException;
}