package net.northking.cctp.se.script;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 统一自动化测试脚本
 */
public class ATUScript implements Serializable
{
  /**
   * 脚本标识ID
   */
  private String id;

  /**
   * 引擎版本
   */
  private String engineVersion;

  /**
   * 脚本信息
   */
  private String scriptInfo;

  /**
   * 被测目标
   */
  private List<ScriptTarget> testTargets = new ArrayList<>();

  /**
   * 脚本运行环境要求
   */
  private ScriptEnvironment runtime;

  /**
   * 脚本全局设置
   */
  private Map<String, Object> globalSettings = new HashMap<>();

  /**
   * 脚本参数清单
   */
  private List<ScriptVariable> variables = new ArrayList<>();

  /**
   * 脚本资源清单
   */
  private List<ScriptResource> resources = new ArrayList<>();

  /**
   * 脚本步骤清单
   */
  private List<ScriptStep> commands = new ArrayList<>();

  public String getId()
  {
    return id;
  }

  public void setId(String id)
  {
    this.id = id;
  }

  public String getEngineVersion()
  {
    return engineVersion;
  }

  public void setEngineVersion(String engineVersion)
  {
    this.engineVersion = engineVersion;
  }

  public String getScriptInfo()
  {
    return scriptInfo;
  }

  public void setScriptInfo(String scriptInfo)
  {
    this.scriptInfo = scriptInfo;
  }

  public List<ScriptTarget> getTestTargets()
  {
    return testTargets;
  }

  public void setTestTargets(List<ScriptTarget> testTargets)
  {
    this.testTargets = testTargets;
  }

  public ScriptEnvironment getRuntime()
  {
    return runtime;
  }

  public void setRuntime(ScriptEnvironment runtime)
  {
    this.runtime = runtime;
  }

  public Map<String, Object> getGlobalSettings()
  {
    return globalSettings;
  }

  public void setGlobalSettings(Map<String, Object> globalSettings)
  {
    this.globalSettings = globalSettings;
  }

  public List<ScriptVariable> getVariables()
  {
    return variables;
  }

  public void setVariables(List<ScriptVariable> variables)
  {
    this.variables = variables;
  }

  public List<ScriptResource> getResources()
  {
    return resources;
  }

  public void setResources(List<ScriptResource> resources)
  {
    this.resources = resources;
  }

  public List<ScriptStep> getCommands()
  {
    return commands;
  }

  public void setCommands(List<ScriptStep> commands)
  {
    this.commands = commands;
  }
}
