001    package controller;
002    
003    import model.ILambda;
004    
005    /**
006     * Adapter to connect the simulation toolbar and the simulation.
007     *
008     * @author Mathias Ricken
009     */
010    public interface ISimAdapter {
011        /**
012         * Make a simulation step.
013         */
014        void step();
015    
016        /**
017         * Start simulation.
018         */
019        void start();
020    
021        /**
022         * Stop simulation.
023         */
024        void stop();
025    
026        /**
027         * Change the simulation speed.
028         *
029         * @param speed simulation speed
030         */
031        void setSpeed(int speed);
032    
033        /**
034         * Set simulation start command. This command gets called before the simulation starts.
035         *
036         * @param startCmd start command
037         */
038        void setStartLambda(ILambda startCmd);
039    
040        /**
041         * Set simulation iteration command. This command gets called after the simulation finishes a step.
042         *
043         * @param itCmd start command
044         */
045        void setIterationLambda(ILambda itCmd);
046    }