package org.jbpm.sim.report; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; /** * This class holds simulation run details * (as simple POJOs) for a whole scenario * * @author bernd.ruecker@camunda.com */ public class ExperimentReport { private String experimentName; private String currency; /** * Map with all scenario results with the scenario name as key. * * It is a Map<String, ScenarioReport> */ private Map scenarioReports = new HashMap(); public ExperimentReport(String experimentName) { this.experimentName = experimentName; this.currency = ""; } public ExperimentReport(String experimentName, String currency) { this.experimentName = experimentName; this.currency = currency; } /** * returns a list with a ValueStatisticResult for * all states / task wait times for all contained * scenarios */ public List getAllStateWaitingTimes() { ArrayList result = new ArrayList(); for (Iterator iterator = scenarioReports.values().iterator(); iterator.hasNext();) { ScenarioReport sr = (ScenarioReport) iterator.next(); result.addAll( sr.getStateWaitingTimes()); } return result; } /** * returns a list with a QueueStatisticResult for * all resource pools */ public List getAllResourcePoolWaitingTimes() { ArrayList result = new ArrayList(); for (Iterator iterator = scenarioReports.values().iterator(); iterator.hasNext();) { ScenarioReport sr = (ScenarioReport) iterator.next(); result.addAll( sr.getResourcePoolWaitingTimes()); } return result; } /** * returns a list with a UtilizationStatisticsResult for * all resource pools */ public List getAllResourcePoolUtilizations() { ArrayList result = new ArrayList(); for (Iterator iterator = scenarioReports.values().iterator(); iterator.hasNext();) { ScenarioReport sr = (ScenarioReport) iterator.next(); result.addAll( sr.getResourcePoolUtilizations()); } return result; } public void addScenarioReport(ScenarioReport simulationReport) { scenarioReports.put(simulationReport.getScenarioName(), simulationReport); } public ScenarioReport getScenarioReport(String scenarioName) { return (ScenarioReport) scenarioReports.get(scenarioName); } public String getExperimentName() { return experimentName; } public int getScenarioCount() { return scenarioReports.keySet().size(); } public Collection getScenarioReports() { return scenarioReports.values(); } public String getCurrency() { return currency; } }