
website.automate.jwebrobot.context.GlobalExecutionContext Maven / Gradle / Ivy
package website.automate.jwebrobot.context;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import website.automate.jwebrobot.executor.ExecutorOptions;
import website.automate.jwebrobot.loader.ScenarioFile;
import website.automate.jwebrobot.utils.PrecedenceComparator;
import website.automate.waml.io.model.Scenario;
public class GlobalExecutionContext {
private Map nameScenarioMap = new HashMap<>();
private Map scenarioFileMap = new HashMap<>();
private Map memory = new HashMap<>();
private List scenarios = new ArrayList<>();
private ExecutorOptions options;
public GlobalExecutionContext(Collection scenarioFiles, ExecutorOptions options,
Map memory) {
this.options = options;
this.memory = memory;
addScenarios(scenarioFiles);
}
private void addScenarios(Collection scenarioFiles){
for(ScenarioFile scenarioFile : scenarioFiles){
for(Scenario scenario : scenarioFile.getScenarios()){
addScenario(scenarioFile.getFile(), scenario);
}
}
Collections.sort(scenarios, PrecedenceComparator.getInstance());
}
private void addScenario(File scenarioFile, Scenario scenario){
this.scenarioFileMap.put(scenario, scenarioFile);
this.nameScenarioMap.put(scenario.getName(), scenario);
this.scenarios.add(scenario);
}
public Scenario getScenario(String name){
return nameScenarioMap.get(name);
}
public File getFile(Scenario scenario){
return scenarioFileMap.get(scenario);
}
public ExecutorOptions getOptions() {
return options;
}
public List getScenarios() {
return scenarios;
}
public Map getMemory() {
Map copy = new HashMap<>();
copy.putAll(memory);
return copy;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy