package eu.dnetlib.common.ws.dataprov;

import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

@WebService
public interface IDataProvider {
	
	
	/**
	 * Returns number of results inside bulk data.
	 * Used by ResultSet service for feeding results.
	 * @param bd_id
	 * @return GetNumberOfResultsResp object containing status and total fields
	 */
    @WebMethod(operationName = "getNumberOfResults", action = "getNumberOfResults")
    public ResultsResponse getNumberOfResults(
        @WebParam(name = "bkid")
        String bd_id)
        throws DataProviderException;

	/**
	 * Returns part of bulk data limited by fromPosition and toPosition.
	 * Used by ResultSet service for feeding results.
	 * @param bd_id
	 * @param fromPosition
	 * @param toPosition
	 * @return bulkData content
	 */
    @WebMethod(operationName = "getBulkData", action = "getBulkData")
    public List<String> getBulkData(
        @WebParam(name = "bkid")
        String bd_id,
        @WebParam(name = "fromPosition")
        int fromPosition,
        @WebParam(name = "toPosition")
        int toPosition)
        throws DataProviderException;
}
