package eu.dnetlib.data.utility.featureextraction;

import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.ws.wsaddressing.W3CEndpointReference;

import eu.dnetlib.common.interfaces.ws.IDriverService;

/**
 * @author Jochen Schirrwagen (jochen.schirrwagen@uni-bielefeld.de)
 *
 */
@WebService( targetNamespace = "http://schemas.xmlsoap.org/soap/envelope/" )
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT)
public interface IFeatureExtractionService extends IDriverService{

	@WebMethod(action="getFeatures", operationName="getFeatures")
	@WebResult(name="return")
	public List<Feature> getFeatures();
	
	@WebMethod(action="", operationName="")
	@WebResult(name="return")
	public W3CEndpointReference extract(
			@WebParam(name="feature") Feature aFeature, 
			@WebParam(name="rsEpr") W3CEndpointReference aRsEpr)
		throws FeatureExtractionException;

	/**
	 * returns status information of the extraction operation job identified by rsId
	 * 
	 * @param rsId
	 * @return a statusrecord as string
	 * @throws HarvestingServiceException
	 */
	@WebMethod(action="getStatusInformation", operationName="getStatusInformation")
	@WebResult(name="Return")
	public String getStatusInformation(
			@WebParam(name="id") String id) throws FeatureExtractionException;
}
