package au.org.aurin.wif.svc; import java.io.IOException; import java.util.concurrent.Future; import au.org.aurin.wif.exception.config.WifInvalidConfigException; import au.org.aurin.wif.exception.io.DataStoreCreationException; import au.org.aurin.wif.exception.io.DataStoreUnavailableException; import au.org.aurin.wif.exception.io.MiddlewarePersistentException; import au.org.aurin.wif.exception.io.WifIOException; import au.org.aurin.wif.exception.validate.InvalidFFNameException; import au.org.aurin.wif.exception.validate.InvalidLabelException; import au.org.aurin.wif.exception.validate.WifInvalidInputException; import au.org.aurin.wif.model.WifProject; /** * The Interface AsyncProjectService. */ public interface AsyncProjectService { /** * Setup project async. * * @param project * the project * @param username * the username * @return the future * @throws WifInvalidInputException * the wif invalid input exception * @throws DataStoreUnavailableException * the data store unavailable exception * @throws DataStoreCreationException * the data store creation exception * @throws InvalidFFNameException * @throws InvalidLabelException * @throws WifInvalidConfigException */ Future<String> setupProjectAsync(WifProject project, String username) throws WifInvalidInputException, DataStoreUnavailableException, DataStoreCreationException, WifInvalidConfigException, InvalidLabelException, InvalidFFNameException; /** * Upload uaz async. * * @param project * the project * @param roleId * the role id * @return the future * @throws WifIOException * the wif io exception * @throws DataStoreCreationException * @throws IOException * @throws MiddlewarePersistentException */ Future<String> uploadUAZAsync(WifProject project, String roleId) throws WifIOException, IOException, DataStoreCreationException, MiddlewarePersistentException; }