package com.plectix.simulator.simulator.api; import com.plectix.simulator.simulator.KappaSystem; import com.plectix.simulator.simulator.SimulationData; import com.plectix.simulator.simulator.SimulationArguments.SimulationType; public class SimulatorState { private final SimulationData simulationData; /*----------STATIC PROPERTIES-------------*/ private boolean subViewsComputed = false; private boolean injectionsSet = false; private boolean kappaFileCompiled = false; private SimulationType latestSimulationType = SimulationType.NONE; private String latestCompiledKappaFileName = null; private char[] latestCompiledKappaInputArray = null; private boolean kappaModelCreated = false; private String latestLoadedKappaFileName = null; public SimulatorState(SimulationData simulationData) { this.simulationData = simulationData; } public void reset() { subViewsComputed = false; injectionsSet = false; latestSimulationType = SimulationType.NONE; this.getKappaSystem().markAsNotInitialized(); kappaFileCompiled = false; } public final boolean subviewsComputed() { return this.subViewsComputed; } public final void setSubviewsStatus(boolean status) { this.subViewsComputed = status; } public final boolean injectionsAreSet() { return this.injectionsSet; } public final void setInjectionsStatus(boolean status) { this.injectionsSet = status; } public final SimulationType getLatestSimulationType() { return latestSimulationType; } public final void refreshSimulationType(SimulationType type) { if (latestSimulationType != type) { if (latestSimulationType != SimulationType.NONE) { this.getKappaSystem().markAsNotInitialized(); } latestSimulationType = type; } } public final boolean kappaSystemIsInitialized() { return this.getKappaSystem().isInitialized(); } private final KappaSystem getKappaSystem() { return simulationData.getKappaSystem(); } public void setKappaFileCompiled() { this.kappaFileCompiled = true; this.latestCompiledKappaFileName = simulationData.getSimulationArguments().getInputFileName(); this.latestCompiledKappaInputArray = simulationData.getSimulationArguments().getInputCharArray(); } public boolean isKappaFileCompiled() { if (this.latestCompiledKappaFileName != null) { String currentFileName = simulationData.getSimulationArguments().getInputFileName(); return kappaFileCompiled && this.latestCompiledKappaFileName.equals(currentFileName); } else if (this.latestCompiledKappaInputArray != null) { char[] currentInputArray = simulationData.getSimulationArguments().getInputCharArray(); return kappaFileCompiled && this.latestCompiledKappaInputArray.equals(currentInputArray); } return false; } public void setKappaModelCreationStatus(boolean b) { kappaModelCreated = b; } public boolean isKappaModelCreated() { return this.kappaModelCreated; } public String getLatestLoadedFileName() { return this.latestLoadedKappaFileName ; } public void setLatestLoadedFileName(String latestLoadedFileName) { this.latestLoadedKappaFileName = latestLoadedFileName; } }