package de.bse.prgm.cmd.time; import de.bse.prgm.cmd.HotspotCompiledCommand; import de.bse.run.app.IConsole; import de.bse.vm.Machine; import de.bse.vm.var.IVariable; /** * Pauses the execution (time in [ms]). * * @author Jonas Reichmann * @version 2.15 */ public class Pause extends HotspotCompiledCommand { public Pause(String time2) { this.timeString = time2; this.multiplier = 1; } public Pause(String time2, int multiplier) { this.timeString = time2; this.multiplier = multiplier; } protected long time; private IVariable timeVar; private final String timeString; private final long multiplier; public void execute(Machine machine, IConsole console) { super.execute(machine, console); time = timeVar.getValue() * multiplier; try { Thread.sleep((long) time); } catch (InterruptedException e) { // a failed pause is not important for the program execution - do nothing } } public String infoMsg() { return "[Info]Paused the execution for " + time + " milliseconds"; } public String toString() { return "PAUSE"; } protected void init(Machine machine) { timeVar = machine.parseIVariable(timeString); } }