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 and Description
`CompoundVariable()`
`CompoundVariable(String parameters)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`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(Collection<CompoundVariable> parameters)` A collection of the parameters used to configure your function.
`void` `setParameters(String parameters)`

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

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

### Constructor Detail

#### CompoundVariable

    public CompoundVariable()

#### CompoundVariable

    public CompoundVariable(String parameters)

### Method Detail

#### 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 threadsafe - 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