package com.plectix.simulator.simulator.api.steps.experiments; import com.plectix.simulator.simulator.Simulator; public interface ExperimentRunnerListener { /** * Called before a new experiment is started. * The class implementing this interface can get the simulation input * data from the simulator and make changes. * * @param experimentNo the experiment number the simulator is going to start * @param simulator * @throws Exception */ public void startingExperiment(int experimentNo, Simulator simulator) throws Exception; /** * Called after a simulation run has ended. * The class implementing this interface can get the simulation output * data from the simulator and process it. * * @param experimentNo the experiment number the simulator has just finished * @param simulator */ public void finishedExperiment(int experimentNo, Simulator simulator); /** * Called when all simulation experiments are ended. * <br> <br> * Note that the number of experiments performed may be less than originally requested * if an Exception or Error has occurred. * * @param experimentNo the experiment of runs the simulator has successfully completed * @param simulator */ public void finishedAllExperiments(int experimentNo, Simulator simulator); }