package au.org.aurin.wif.restclient.suitability; import java.util.HashMap; import java.util.List; import org.springframework.validation.BindException; import au.org.aurin.wif.exception.config.WifInvalidConfigException; import au.org.aurin.wif.exception.validate.WifInvalidInputException; import au.org.aurin.wif.impl.suitability.WMSOutcome; import au.org.aurin.wif.model.reports.suitability.SuitabilityAnalysisReport; import au.org.aurin.wif.model.suitability.SuitabilityScenario; /** * The Interface SuitabilityScenarioServiceClient. */ public interface SuitabilityScenarioServiceClient { /** * Sets the url. * * @param url * the new url */ void setUrl(String url); /** * Gets the suitability scenarios for project. * * @param roleId * the role id * @param projectId * the project id * @return the suitability scenarios for project * @throws WifInvalidInputException * the wif invalid input exception */ List<SuitabilityScenario> getSuitabilityScenariosForProject(String roleId, String projectId) throws WifInvalidInputException; /** * Gets the suitability scenario. * * @param roleId * the role id * @param projectId * the project id * @param id * the id * @return the suitability scenario * @throws WifInvalidInputException * the wif invalid input exception * @throws WifInvalidConfigException * the wif invalid config exception */ SuitabilityScenario getSuitabilityScenario(String roleId, String projectId, String id) throws WifInvalidInputException, WifInvalidConfigException; /** * Creates the suitability scenario. * * @param roleId * the role id * @param projectId * the project id * @param suitabilityScenario * the suitability scenario * @return the string * @throws WifInvalidInputException * the wif invalid input exception * @throws BindException * the bind exception */ String createSuitabilityScenario(String roleId, String projectId, SuitabilityScenario suitabilityScenario) throws WifInvalidInputException, BindException; /** * Update suitability scenario. * * @param roleId * the role id * @param projectId * the project id * @param id * the id * @param suitabilityScenario * the suitability scenario * @throws WifInvalidInputException * the wif invalid input exception * @throws BindException * the bind exception * @throws WifInvalidConfigException * the wif invalid config exception */ void updateSuitabilityScenario(String roleId, String projectId, String id, SuitabilityScenario suitabilityScenario) throws WifInvalidInputException, BindException, WifInvalidConfigException; /** * Delete suitability scenario. * * @param roleId * the role id * @param projectId * the project id * @param id * the id * @throws WifInvalidInputException * the wif invalid input exception */ void deleteSuitabilityScenario(String roleId, String projectId, String id) throws WifInvalidInputException; /** * Gets the wMS outcome. * * @param roleId * the role id * @param id * the id * @param projectId * the project id * @param areaAnalyzed * the area analyzed * @param crsArea * the crs area * @return the wMS outcome */ WMSOutcome getWMSOutcome(String roleId, String id, String projectId, String areaAnalyzed, String crsArea); /** * Gets the wMS outcome async. * * @param roleId * the role id * @param projectId * the project id * @param id * the id * @param areaAnalyzed * the area analyzed * @param crsArea * the crs area * @return the wMS outcome async * @throws WifInvalidInputException * the wif invalid input exception */ void getWMSOutcomeAsync(String roleId, String projectId, String id, String areaAnalyzed, String crsArea) throws WifInvalidInputException; /** * Gets the status. * * @param roleId * the role id * @param projectId * the project id * @param id * the id * @return the status */ HashMap<String, String> getStatus(String roleId, String projectId, String id); /** * Gets the wms. * * @param roleId * the role id * @param projectId * the project id * @param id * the id * @return the wms */ WMSOutcome getWMS(String roleId, String projectId, String id); /** * Gets the suitability scenario report. * * @param roleId * the role id * @param projectId * the project id * @param id * the id * @return the suitability scenario report */ SuitabilityAnalysisReport getSuitabilityScenarioReport(String roleId, String projectId, String id); }