Package org.apache.jmeter.engine.util

# Class CompoundVariable

java.lang.Object
org.apache.jmeter.engine.util.CompoundVariable

All Implemented Interfaces:
  `Function`

public class CompoundVariable extends Object implements Function
CompoundFunction.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CompoundVariable()`
  `CompoundVariable(String parameters)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clear()`
  `String`
  `execute()`
  `String`
  `execute(SampleResult previousResult, Sampler currentSampler)`
  Given the previous SampleResult and the current Sampler, return a string to use as a replacement value for the function call.
  `List<String>`
  `getArgumentDesc()`
  Return a list of strings briefly describing each parameter your function takes.
  `CompoundVariable`
  `getFunction()`
  `static Class<? extends Function>`
  `getFunctionClass(String className)`
  `static String[]`
  `getFunctionNames()`
  `String`
  `getRawParameters()`
  Allows the retrieval of the original String prior to it being compiled.
  `String`
  `getReferenceKey()`
  Return the name of your function.
  `boolean`
  `hasFunction()`
  `void`
  `setParameters(String parameters)`
  `void`
  `setParameters(Collection<CompoundVariable> parameters)`
  A collection of the parameters used to configure your function.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### CompoundVariable

    public CompoundVariable()

  - ### CompoundVariable

    public CompoundVariable(String parameters)

- ## Method Details

  - ### execute

    public String execute()

  - ### getRawParameters

    public String getRawParameters()
    Allows the retrieval of the original String prior to it being compiled.
    Returns:
      String

  - ### execute

    public String execute(SampleResult previousResult, Sampler currentSampler)
    Given the previous SampleResult and the current Sampler, return a string to use as a replacement value for the function call. Assume "setParameter" was previously called.

    This method must be thread-safe - multiple threads will be using the same object.

    Specified by:
      `execute` in interface `Function`
    Parameters:
      `previousResult` - The previous `SampleResult`
      `currentSampler` - The current `Sampler`
    Returns:
      The replacement value, which was generated by the function

  - ### getFunction

    public CompoundVariable getFunction()

  - ### getArgumentDesc

    public List<String> getArgumentDesc()
    Return a list of strings briefly describing each parameter your function takes. Please use JMeterUtils.getResString(resource_name) to grab a resource string. Otherwise, your help text will be difficult to internationalize. This list is not optional. If you don't wish to write help, you must at least return a List containing the correct number of blank strings, one for each argument.
    Specified by:
      `getArgumentDesc` in interface `Function`
    Returns:
      List with brief descriptions for each parameter the function takes

  - ### clear

    public void clear()

  - ### setParameters

    public void setParameters(String parameters) throws InvalidVariableException
    Throws:
      `InvalidVariableException`

  - ### getFunctionClass

    public static Class<? extends Function> getFunctionClass(String className)

  - ### getFunctionNames

    public static String[] getFunctionNames()

  - ### hasFunction

    public boolean hasFunction()

  - ### getReferenceKey

    public String getReferenceKey()
    Return the name of your function. Convention is to prepend "__" to the name (ie "__regexFunction")
    Specified by:
      `getReferenceKey` in interface `Function`
    Returns:
      The name of the function

  - ### setParameters

    public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException
    A collection of the parameters used to configure your function. Each parameter is a CompoundVariable and can be resolved by calling the execute() method of the CompoundVariable (which should be done at execution.)
    Specified by:
      `setParameters` in interface `Function`
    Parameters:
      `parameters` - The parameters for the function call
    Throws:
      `InvalidVariableException` - - when the variables for the function call can't be evaluated