The following code defines the Groovy Interface for the GenRocket API.  The Groovy source code is compiled into a Java Binary.  A detailed description of each method is described within the set of GenRocket API documents.


package com.genRocket.engine

/**
 * Created by Hycel Taylor on 12/28/16.
 */
interface EngineAPI {
  // Scenario Commands

  public void scenarioLoad(String scenarioPathAndName)

  public Map<String, EngineResourceVariable> loadResources(String profileId)

  public List<String> scenarios()

  public void scenarioClear()

  public void scenarioRun()

  public void initialize(String scenarioName)

  public void scenarioExecuteLoop()

  public void executeShutdown()

  public void scenarioRun(String scenarioName)

  public void scenarioRename(String scenarioName, String newName)

  public List<Object> scenarioRunInMemory(String scenarioName, String domainName)

  // Domain Commands

  public List<String> domains()

  public void domainSetLoopCount(String domainName, String loopCount)

  public void domainAdd(String domainName)

  public void domainRemove(String domainName)

  public void domainsRemove()

  // Domain Parameters

  public String domainParameterGet(String domainName, String parameterName)

  public void domainParameterSet(String domainName, String parameterName, String value)

  // Domain Parents

  public void domainParentAdd(String parentName, String sourceName)

  public void domainParentRemove(String sourceName)

  public String domainParent(String domainName)

  public void domainRename(String domainName, String newName)

  // Attribute Commands

  public List<String> attributes(String domainName)

  public void attributeAdd(String attributeName) // domainName.name

  public void attributesAdd(String domainName, List<String> attributeNames) // domainName, attribute names

  public void attributeRemove(String attributeName) // domainName.name

  public void attributesRemove(String domainName)

  public void attributeRename(String attributeName, String newName)  // domainName.name, name

  // Generator Commands

  public List<String> generators(String attributeName)

  public Integer generatorAdd(String attributeName, String generatorName, Boolean setLoop, Map<String, Object> requiredGeneratorParameters)

  public void generatorReplace(String attributeName, String generatorName, Integer position, Boolean setLoop, Map<String, Object> requiredGeneratorParameters)

  public void generatorRemove(String attributeName, Integer generatorPosition)

  public void generatorsRemove(String attributeName)

  // Generator Parameter Commands

  public Object generatorParameterGet(String attributeName, Integer generatorPosition, String parameterName)

  public Map<String, String> generatorParametersGet(String attributeName, Integer generatorPosition)

  public void generatorParameterSet(String attributeName, Integer generatorPosition, String parameterName, Object value)

  public void generatorParametersSet(String attributeName, Integer generatorPosition, Map<String, Object> parameterMap)

  // Receiver Commands

  public List<String> receivers(String domainName)

  public void receiverAdd(String domainName, String canonicalName, String receiverName, Map<String, String> parameterMap)

  public void receiverRemove(String domainName, String receiverName)

  public void receiversRemove(String domainName)

  public void receiverParameterSet(String domainName, String receiverName, String parameterName, String value)

  public void receiverParametersSet(String domainName, String receiverName, Map<String, String> parameterMap)

  public void receiverRename(String domainName, String receiverName, String newName)

  public String receiverParameterGet(String domainName, String receiverName, String parameterName)

  public Map<String,String> receiverParametersGet(String domainName, String receiverName)

  // Receiver PropertyKey Commands

  public String receiverPropertyKeyValueGet(String attributeName, String receiverName, String propertyKeyName)

  public void receiverPropertyKeyValueSet(String attributeName, String receiverName, String propertyKeyName, String value)

  public void receiverPropertyKeyValuesSet(String attributeName, String receiverName, Map<String, String> propertyKeyMap)
}