package au.org.aurin.wif.svc.report; 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.IncompleteDemandScenarioException; import au.org.aurin.wif.exception.validate.WifInvalidInputException; import au.org.aurin.wif.impl.report.suitability.suitabilityConvertReport; import au.org.aurin.wif.impl.report.suitability.suitabilityFactorReport; import au.org.aurin.wif.model.WifProject; import au.org.aurin.wif.model.allocation.AllocationScenario; import au.org.aurin.wif.model.demand.DemandScenario; import au.org.aurin.wif.model.reports.ProjectReport; import au.org.aurin.wif.model.reports.allocation.AllocationAnalysisReport; import au.org.aurin.wif.model.reports.allocation.AllocationSimpleAnalysisReport; import au.org.aurin.wif.model.reports.demand.DemandAnalysisReport; import au.org.aurin.wif.model.reports.suitability.SuitabilityAnalysisReport; import au.org.aurin.wif.model.suitability.SuitabilityScenario; /** * The Interface ReportService. */ public interface ReportService { /** * Gets the suitability analysis report. * * @param suitabilityScenario * the suitability scenario * @return the suitability analysis report * @throws WifInvalidConfigException * @throws WifInvalidInputException */ SuitabilityAnalysisReport getSuitabilityAnalysisReport( SuitabilityScenario suitabilityScenario) throws WifInvalidInputException, WifInvalidConfigException; /** * Gets the project report. * * @param project * the project * @return the project report * @throws WifInvalidInputException * the wif invalid input exception * @throws WifInvalidConfigException * the wif invalid config exception * @throws ParsingException * the parsing exception */ ProjectReport getProjectReport(WifProject project) throws WifInvalidInputException, WifInvalidConfigException, ParsingException; /** * Gets the demand analysis report. * * @param demandScenario * the demand scenario * @return the demand analysis report * @throws WifInvalidInputException * the wif invalid input exception * @throws WifInvalidConfigException * the wif invalid config exception * @throws ParsingException * the parsing exception * @throws IncompleteDemandScenarioException * the incomplete demand scenario exception */ DemandAnalysisReport getDemandAnalysisReport(DemandScenario demandScenario) throws WifInvalidInputException, WifInvalidConfigException, ParsingException, IncompleteDemandScenarioException; /** * Gets the allocation analysis report. * * @param allocationScenario * the allocation scenario * @return the allocation analysis report * @throws ParsingException * @throws WifInvalidConfigException * @throws WifInvalidInputException */ AllocationAnalysisReport getAllocationAnalysisReport( AllocationScenario allocationScenario) throws WifInvalidInputException, WifInvalidConfigException, ParsingException; /** * Gets the allocation simple analysis report. * * @param allocationScenario * the allocation scenario * @return the allocation analysis report * @throws ParsingException * @throws WifInvalidConfigException * @throws WifInvalidInputException */ AllocationSimpleAnalysisReport getAllocationSimpleAnalysisReport( AllocationScenario allocationScenario) throws WifInvalidInputException, WifInvalidConfigException, ParsingException; List<suitabilityFactorReport> getSuitabilityCSVAnalysisReport( SuitabilityScenario suitabilityScenario); List<suitabilityConvertReport> getSuitabilityConvertAnalysisReport( SuitabilityScenario suitabilityScenario); List<String> getSuitabilityLUsScores(final String projectID) throws WifInvalidInputException, WifInvalidConfigException; }