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

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