All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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