# Class MultiProperty

java.lang.Object
org.apache.jmeter.testelement.property.AbstractProperty
org.apache.jmeter.testelement.property.MultiProperty

All Implemented Interfaces:
  `Serializable, Cloneable, Comparable<JMeterProperty>, JMeterProperty`

Direct Known Subclasses:
  `CollectionProperty, MapProperty, TestElementProperty`

public abstract class MultiProperty extends AbstractProperty
For JMeterProperties that hold multiple properties within, provides a simple interface for retrieving a property iterator for the sub values.

Version:
  $Revision: 1647786 $
See Also:
  - Serialized Form

## Field Summary

### Fields inherited from class AbstractProperty

`log`

## Constructor Summary

Constructors
Constructor
Description
`MultiProperty()`
`MultiProperty(String name)`

## Method Summary

Modifier and Type
Method
Description
`abstract void`
`addProperty(JMeterProperty prop)`
Add a property to the collection.
`abstract void`
`clear()`
Clear away all values in the property.
`abstract PropertyIterator`
`iterator()`
Get the property iterator to iterate through the sub-values of this JMeterProperty.
`void`
`mergeIn(JMeterProperty prop)`
Take the given property object and merge it's value with the current property object.
`protected void`
`recoverRunningVersionOfSubElements(TestElement owner)`
`void`
`setRunningVersion(boolean running)`
Make the property a running version or turn it off as the running version.

### Methods inherited from class AbstractProperty

`clone, compareTo, convertObject, createProperty, equals, getBlankProperty, getBlankProperty, getBooleanValue, getDoubleValue, getFloatValue, getIntValue, getIterator, getLongValue, getName, getPropertyType, hashCode, isEqualType, isRunningVersion, makeProperty, normalizeList, normalizeMap, setName, toString`

### Methods inherited from class Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface JMeterProperty

`getObjectValue, getStringValue, recoverRunningVersion, setObjectValue`

## Constructor Details

### MultiProperty

public MultiProperty()

### MultiProperty

public MultiProperty(String name)

## Method Details

### iterator

public abstract PropertyIterator iterator()
Get the property iterator to iterate through the sub-values of this JMeterProperty.

Returns:
  an iterator for the sub-values of this property

### addProperty

public abstract void addProperty(JMeterProperty prop)
Add a property to the collection.

Parameters:
  `prop` - the `JMeterProperty` to add

### clear

public abstract void clear()
Clear away all values in the property.

### setRunningVersion

public void setRunningVersion(boolean running)
Description copied from class: `AbstractProperty`
Make the property a running version or turn it off as the running version. A property that is made a running version will preserve the current state in such a way that it is retrievable by a future call to 'recoverRunningVersion()'. Additionally, a property that is a running version will resolve all functions prior to returning it's property value. A non-running version property will return functions as their uncompiled string representation.

Specified by:
  `setRunningVersion` in interface `JMeterProperty`
Overrides:
  `setRunningVersion` in class `AbstractProperty`
Parameters:
  `running` - flag whether this property is a running version

### recoverRunningVersionOfSubElements

protected void recoverRunningVersionOfSubElements(TestElement owner)

### mergeIn

public void mergeIn(JMeterProperty prop)
Description copied from class: `AbstractProperty`
Take the given property object and merge it's value with the current property object. For most property types, this will simply be ignored. But for collection properties and test element properties, more complex behavior is required.

Specified by:
  `mergeIn` in interface `JMeterProperty`
Overrides:
  `mergeIn` in class `AbstractProperty`
Parameters:
  `prop` - the property object to merge into this property