package au.org.aurin.wif.restclient.suitability; import java.util.List; import au.org.aurin.wif.exception.config.WifInvalidConfigException; import au.org.aurin.wif.exception.validate.WifInvalidInputException; import au.org.aurin.wif.model.suitability.FactorType; /** * The Interface FactorTypeServiceClient. */ public interface FactorTypeServiceClient { /** * Gets the factor types for project and factor. * * @param roleId the role id * @param projectId the project id * @param factorId the factor id * @return the factor types for project and factor * @throws WifInvalidInputException the wif invalid input exception */ List<FactorType> getFactorTypesForProjectAndFactor(String roleId, String projectId, String factorId) throws WifInvalidInputException; /** * Gets the factor type. * * @param roleId the role id * @param projectId the project id * @param factorId the factor id * @param id the id * @return the factor type * @throws WifInvalidInputException the wif invalid input exception * @throws WifInvalidConfigException the wif invalid config exception */ FactorType getFactorType(String roleId, String projectId, String factorId, String id) throws WifInvalidInputException, WifInvalidConfigException; /** * Creates the factor type. * * @param roleId the role id * @param projectId the project id * @param factorId the factor id * @param factorType the factor type * @return the string */ String createFactorType(String roleId, String projectId, String factorId, FactorType factorType); /** * Update factor type. * * @param roleId the role id * @param projectId the project id * @param factorId the factor id * @param id the id * @param factorType the factor type * @throws WifInvalidInputException the wif invalid input exception * @throws WifInvalidConfigException the wif invalid config exception */ void updateFactorType(String roleId, String projectId, String factorId, String id, FactorType factorType) throws WifInvalidInputException, WifInvalidConfigException;; /** * Delete factor type. * * @param roleId the role id * @param projectId the project id * @param factorId the factor id * @param id the id * @throws WifInvalidInputException the wif invalid input exception */ void deleteFactorType(String roleId, String projectId, String factorId, String id) throws WifInvalidInputException; }