/**
*
*/
package com.plectix.simulator.simulator.api.steps.experiments;
import com.plectix.simulator.simulator.Simulator;
public interface ExperimentListener {
/**
* Called before a new simulation run is started.
* The class implementing this interface can get the simulation input
* data from the simulator and make changes.
*
* @param runNo the run number the simulator is going to start
* @param simulator
* @throws Exception
*/
public void startingRun(int runNo, 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 runNo the run number the simulator has just finished
* @param simulator
*/
public void finishedRun(int runNo, Simulator simulator);
/**
* Called when all simulation runs are ended.
* <br> <br>
* Note that the number of runs performed may be less than originally requested
* if an Exception or Error has occurred.
*
* @param runNo the number of runs the simulator has successfully completed
* @param simulator
*/
public void finishedAllRuns(int runNo, Simulator simulator);
}