package au.org.aurin.wif.svc.demand; import java.util.List; import au.org.aurin.wif.exception.config.ParsingException; import au.org.aurin.wif.exception.config.WifInvalidConfigException; import au.org.aurin.wif.exception.validate.IncompleteDemandOutcomeException; import au.org.aurin.wif.exception.validate.WifInvalidInputException; import au.org.aurin.wif.model.demand.AreaRequirement; import au.org.aurin.wif.model.demand.DemandOutcome; /** * The Interface ManualDemandScenarioService. */ public interface DemandOutcomeService { // FIXME quick implementation to create a manual demand outcome from a demand // scenario // All references to manual demand the scenarios should change to minor demand // outcomes! DemandOutcome createDemandOutcome(List<AreaRequirement> outcome, String projectId) throws WifInvalidInputException, WifInvalidConfigException; /** * Creates the demand scenario. * * @param DemandOutcome * the demand scenario * @param projectId * the project id * @return the demand scenario * @throws WifInvalidInputException * the wif invalid input exception * @throws WifInvalidConfigException * the wif invalid config exception * @throws ParsingException * the parsing exception * @throws IncompleteDemandOutcomeException * the incomplete demand scenario exception */ DemandOutcome createDemandOutcomeNew(DemandOutcome demandOutcome, String projectId) throws WifInvalidInputException, WifInvalidConfigException, ParsingException, IncompleteDemandOutcomeException; /** * Gets the demand scenario. * * @param id * the id * @return the demand scenario * @throws WifInvalidInputException * the wif invalid input exception * @throws WifInvalidConfigException * the wif invalid config exception * @throws ParsingException * the parsing exception */ DemandOutcome getDemandOutcome(String id) throws WifInvalidInputException, WifInvalidConfigException, ParsingException; /** * Gets the demand scenario. * * @param id * the id * @param projectId * the project id * @return the demand scenario * @throws WifInvalidInputException * the wif invalid input exception * @throws WifInvalidConfigException * the wif invalid config exception * @throws ParsingException * the parsing exception */ DemandOutcome getDemandOutcome(String id, String projectId) throws WifInvalidInputException, WifInvalidConfigException, ParsingException; /** * Update demand scenario. * * @param demandOutcome * the demand scenario * @param projectId * the project id * @throws WifInvalidInputException * the wif invalid input exception * @throws WifInvalidConfigException * the wif invalid config exception * @throws ParsingException * the parsing exception */ void updateDemandOutcome(DemandOutcome demandOutcome, String projectId) throws WifInvalidInputException, WifInvalidConfigException, ParsingException; /** * Delete demand scenario. * * @param id * the id * @param projectId * the project id * @throws WifInvalidInputException * the wif invalid input exception * @throws WifInvalidConfigException * the wif invalid config exception * @throws ParsingException * the parsing exception */ void deleteDemandOutcome(String id, String projectId) throws WifInvalidInputException, WifInvalidConfigException, ParsingException; /** * Gets the demand scenarios. * * @param projectId * the project id * @return the demand scenarios * @throws WifInvalidInputException * the wif invalid input exception */ List<DemandOutcome> getDemandOutcomes(String projectId) throws WifInvalidInputException; }