package com.plectix.simulator.simulator.api; import java.util.LinkedHashMap; import java.util.Map; /** * SIMULATOR_CREATION - Creating a simulator and configuring it with SimulationArguments * KAPPA_FILE_LOADING - Feeding a Kappa file to the Simulator, which only detects Kappa errors and warnings. * KAPPA_FILE_COMPILATION - Compiling the Kappa file. One can get the compiled version by just calling a method * SUBVIEWS - Building a set of subviews * CONTACT_MAP * INFLUENCE_MAP * ..._MAP * SOLUTION_INITIALIZATION - Initializing the Solution. One can get the initial state of the system computed. * STORIES - Getting the Stories computed. * SIMULATION - Running the simulation. Again one can get a simulation run by calling a method. * * @author eugene.vlasov * */ public enum OperationType { DO_NOTHING, SIMULATOR_INITIALIZATION, KAPPA_FILE_LOADING, KAPPA_MODEL_BUILDING, KAPPA_FILE_COMPILATION, INITIALIZATION, STORIES, SIMULATION, SUBVIEWS, NON_MODEL_CONTACT_MAP, MODEL_CONTACT_MAP, ACTIVATION_MAP, INHIBITION_MAP, INFLUENCE_MAP, LOCAL_VIEWS, RULE_COMPRESSION, SPECIES_ENUMERATION, DEAD_RULE_DETECTION, INJECTIONS_BUILDING, STANDARD_WORKFLOW("Workflow total time"), DUMP_HELP, DUMP_VERSION, OUTPUT_COMPILED_DATA, XML_OUTPUT("Results output to xml"), ; private static Map<OperationType, OperationType> ordering = new LinkedHashMap<OperationType, OperationType>(); private final String message; static { addPair(KAPPA_MODEL_BUILDING, KAPPA_FILE_LOADING); addPair(KAPPA_FILE_COMPILATION, KAPPA_MODEL_BUILDING); addPair(INITIALIZATION, KAPPA_FILE_COMPILATION); addPair(INJECTIONS_BUILDING, KAPPA_FILE_COMPILATION); addPair(SIMULATION, INITIALIZATION); addPair(STORIES, INITIALIZATION); addPair(SUBVIEWS, KAPPA_FILE_COMPILATION); addPair(MODEL_CONTACT_MAP, SUBVIEWS); addPair(ACTIVATION_MAP, SUBVIEWS); addPair(INHIBITION_MAP, SUBVIEWS); addPair(INFLUENCE_MAP, SUBVIEWS); addPair(LOCAL_VIEWS, SUBVIEWS); addPair(RULE_COMPRESSION, SUBVIEWS); addPair(DEAD_RULE_DETECTION, SUBVIEWS); addPair(SPECIES_ENUMERATION, LOCAL_VIEWS); addPair(OUTPUT_COMPILED_DATA, KAPPA_FILE_COMPILATION); addPair(XML_OUTPUT, KAPPA_FILE_COMPILATION); } private OperationType() { message = null; } private OperationType(String message) { this.message = message; } private static void addPair(OperationType step, OperationType previousStep) { ordering.put(step, previousStep); } public OperationType getNecessaryOperation() { return ordering.get(this); } @Override public final String toString() { if (message != null) { return message; } String string = ("" + super.toString()).replaceAll("_", " ").toLowerCase(); return (string.substring(0,1).toUpperCase() + string.substring(1)).intern() ; } }